Logging.info trăn

Cho đến nay, chúng tôi đã gửi các thông điệp nhật ký của mình tới bảng điều khiển. Điều đó rất tốt cho việc gỡ lỗi cục bộ, nhưng trong thực tế, bạn sẽ thường cần gửi nhật ký đến các đích khác

Sau này trong Hướng dẫn ghi nhật ký Python của chúng tôi, chúng tôi sẽ đề cập đến các chủ đề nâng cao hơn như ghi nhật ký tập trung và

# Import the default logging module
import logging


# Format the log message
logging.basicConfig[level=logging.INFO]


# Emit a warning message
logging.info['Keep going, you are doing great!']
2 cho Django. Hiện tại, chúng tôi sẽ tập trung vào ba trường hợp sử dụng phổ biến

  1. Đăng nhập vào một tập tin
  2. Đăng nhập vào nhật ký hệ thống
  3. Đăng nhập vào systemd-journald

Gửi nhật ký Python tới một tệp

Nếu muốn ứng dụng Python của mình tạo tệp nhật ký, bạn có thể sử dụng mô-đun ghi nhật ký mặc định và chỉ định tên tệp trong mã của mình. Ví dụ: để làm cho tập lệnh mức CẢNH BÁO ban đầu của chúng tôi ghi vào một tệp có tên HumioDemo. log, chúng tôi thêm dòng sau

logging.basicConfig[filename='HumioDemo.log']

Kịch bản mới sẽ trông như thế này

# Import the default logging module
import logging

# Set basicConfig[] to create a log file
logging.basicConfig[filename='HumioDemo.log']

# Emit a warning message
logging.warning['You are learning Python logging!']

Sẽ không có gì in ra bàn điều khiển khi bạn chạy tập lệnh đó. Thay vào đó, nó sẽ tạo một HumioDemo. tệp nhật ký trong thư mục làm việc hiện tại và tệp này sẽ bao gồm thông báo tường trình

Gửi nhật ký Python tới nhật ký hệ thống

Syslog là một cơ chế phổ biến để tập trung các bản ghi cục bộ và từ xa từ các ứng dụng trên toàn hệ thống. Mô-đun ghi nhật ký Python mặc định bao gồm một để gửi nhật ký đến máy chủ nhật ký hệ thống cục bộ hoặc từ xa. Ngoài ra còn có một mô-đun nhật ký hệ thống tiêu chuẩn giúp dễ dàng ghi vào nhật ký hệ thống cho các trường hợp sử dụng Python cơ bản

Đây là tập lệnh sử dụng mô-đun nhật ký hệ thống tiêu chuẩn

# Import the standard syslog module
import syslog

# Emit an INFO-level message
syslog.syslog[syslog.LOG_INFO,'Logging an INFO message with the syslog module!']

# Emit a WARNING-level message
syslog.syslog[syslog.LOG_WARNING,'Logging a WARNING message with the syslog module!']

Sau khi chạy tập lệnh đó, bạn sẽ thấy các thông báo trong tệp nhật ký hệ thống cục bộ của hệ thống. Tùy thuộc vào hệ thống của bạn, tệp đó có thể là

# Import the default logging module
import logging


# Format the log message
logging.basicConfig[level=logging.INFO]


# Emit a warning message
logging.info['Keep going, you are doing great!']
3 hoặc
# Import the default logging module
import logging


# Format the log message
logging.basicConfig[level=logging.INFO]


# Emit a warning message
logging.info['Keep going, you are doing great!']
4. Thông điệp tường trình sẽ trông giống như sau

Nov 11 11:11:16 localhost syslog.py: Logging an INFO message with the syslog module!
Nov 11 11:11:16 localhost syslog.py: Logging a WARNING message with the syslog module!

Gửi nhật ký Python tới systemd-journald

Ghi nhật ký bằng systemd-journald có một số lợi ích, bao gồm

  • Tra cứu nhanh hơn nhờ lưu trữ nhị phân
  • Ghi nhật ký có cấu trúc bắt buộc
  • Xoay vòng nhật ký tự động dựa trên các giá trị
    # Import the default logging module
    import logging
    
    
    # Format the log message
    logging.basicConfig[level=logging.INFO]
    
    
    # Emit a warning message
    logging.info['Keep going, you are doing great!']
    
    5

Trên hầu hết các hệ thống Linux hiện đại sử dụng systemd, nếu ứng dụng Python của bạn chạy dưới dạng một đơn vị systemd, bất cứ thứ gì nó in ra thiết bị xuất chuẩn hoặc thiết bị xuất chuẩn sẽ ghi vào systemd-journald. Điều đó có nghĩa là tất cả những gì bạn cần làm là gửi đầu ra nhật ký của mình tới thiết bị xuất chuẩn hoặc thiết bị xuất chuẩn

Ngoài các mô-đun có trong thư viện Python tiêu chuẩn, thư viện python-systemd và các trình bao bọc như trình bao bọc Python systemd giúp hợp lý hóa quá trình gửi nhật ký Python tới systemd-journald

Ví dụ: để sử dụng python-systemd, trước tiên hãy cài đặt nó bằng trình quản lý gói của hệ thống của bạn. Sau đó thêm dòng sau vào mã của bạn

________số 8_______

Đây là một tập lệnh Python đơn giản viết thông báo ở mức CẢNH BÁO tới tạp chí

import logging
from systemd import journal
logger = logging.getLogger['humioDemoLogger']
logger.addHandler[journal.JournalHandler[]]
logger.warning["logging is easy!"]

Sau khi chạy đoạn script trên, chúng tôi chạy

# Import the default logging module
import logging


# Format the log message
logging.basicConfig[level=logging.INFO]


# Emit a warning message
logging.info['Keep going, you are doing great!']
6 và thấy đầu ra tương tự như

Nov 11 11:11:57 localhost pylog.py[2111]: logging is easy!

Các phương pháp hay nhất để phát nhật ký Python

Tại thời điểm này, bạn sẽ có thể triển khai ghi nhật ký cơ bản cho các ứng dụng Python của mình. Tuy nhiên, còn nhiều điều nữa để tìm hiểu về mô-đun ghi nhật ký tiêu chuẩn. Đọc PEP 282, bản chính thức và là những cách tuyệt vời để tìm hiểu sâu hơn

Khi bạn tiến bộ, hãy ghi nhớ các phương pháp hay nhất sau đây

Bao gồm dấu thời gian với tin nhắn của bạn

Khi nào là một phần quan trọng của một sự kiện. Do đó, bạn nên bao gồm dấu thời gian với mọi thông báo bạn phát ra. Với mô-đun ghi nhật ký mặc định, bạn có thể thêm dấu thời gian vào trình định dạng của mình, như chúng tôi đã làm với %[asctime]s trong ví dụ trước của chúng tôi. Bạn có thể tùy chỉnh thêm bằng cách sử dụng

Có cơ chế xoay nhật ký

Nếu bạn lưu trữ nhật ký trên đĩa, hãy có chiến lược xoay vòng nhật ký để tránh các sự cố về dung lượng ổ đĩa. Với mô-đun ghi nhật ký mặc định của Python, hãy cân nhắc sử dụng

Không khởi tạo trực tiếp các mô-đun ghi nhật ký

Thay vì khởi tạo trực tiếp các mô-đun ghi nhật ký, hãy sử dụng ghi nhật ký. getLogger[tên]. Hệ thống phân cấp đặt tên mô-đun mặc định tương tự như hệ thống phân cấp gói của Python và hoàn toàn giống nhau nếu bạn đặt tên cho các trình ghi theo các mô-đun tương ứng của chúng,

Tập trung nhật ký của bạn

Nhiều tệp nhật ký nằm rải rác trên nhiều hệ thống có thể trở nên khó sử dụng như những câu lệnh print[] ban đầu chúng tôi muốn loại bỏ. Tập trung nhật ký của bạn để phân tích cú pháp và phân tích mang lại cho bạn khả năng quan sát trên quy mô lớn

Thông tin đăng nhập trong Python là gì?

Tiều phu. Đây là lớp có các đối tượng sẽ được sử dụng trực tiếp trong mã ứng dụng để gọi các hàm. Nhật kýGhi ​​lại. Bộ ghi nhật ký tự động tạo các đối tượng LogRecord có tất cả thông tin liên quan đến sự kiện được ghi lại, như tên của bộ ghi, chức năng, số dòng, thông báo, v.v.

Sự khác biệt giữa GỠ LỖI và thông tin trong ghi nhật ký Python là gì?

GỠ LỖI. Thông tin thú vị dành cho Nhà phát triển, khi cố gắng gỡ lỗi sự cố. THÔNG TIN. Thông tin thú vị dành cho nhân viên Hỗ trợ đang cố gắng tìm ra ngữ cảnh của một lỗi nhất định. CẢNH BÁO để FATAL. Sự cố và Lỗi tùy theo mức độ hư hỏng

Sự khác biệt giữa ghi nhật ký GỠ LỖI và ghi thông tin là gì?

Trả lời. Thông báo thông tin là thứ mà chúng tôi muốn xem ngay cả khi ứng dụng ở trạng thái tốt nhất. Thông báo GỠ LỖI thường là thứ mà chúng tôi muốn xem khi gỡ lỗi một số vấn đề .

Ghi nhật ký getLogger [__ Tên __] Python là gì?

getLogger[name] thường được thực thi. Hàm getLogger[] chấp nhận một đối số duy nhất - tên của trình ghi nhật ký. Nó trả về một tham chiếu đến một phiên bản trình ghi với tên được chỉ định nếu được cung cấp hoặc gốc nếu không . Nhiều lệnh gọi getLogger[] có cùng tên sẽ trả về một tham chiếu đến cùng một đối tượng logger.

Chủ Đề