syslog --- thói quen thư viện nhật ký hệ thống Unix


Mô-đun này cung cấp giao diện cho các hoạt động của thư viện Unix syslog. Tham khảo các trang hướng dẫn sử dụng Unix để biết mô tả chi tiết về cơ sở syslog.

sẵn có: Unix, not WASI, not iOS.

Mô-đun này bao bọc nhóm quy trình syslog của hệ thống. Một thư viện Python thuần túy có thể giao tiếp với máy chủ nhật ký hệ thống có sẵn trong mô-đun logging.handlers dưới dạng SysLogHandler.

Mô-đun xác định các chức năng sau:

syslog.syslog(message)
syslog.syslog(priority, message)

Gửi chuỗi message tới bộ ghi hệ thống. Một dòng mới ở cuối sẽ được thêm vào nếu cần thiết. Mỗi tin nhắn được gắn thẻ với mức độ ưu tiên bao gồm facilitylevel. Đối số priority tùy chọn, mặc định là LOG_INFO, xác định mức độ ưu tiên của tin nhắn. Nếu cơ sở không được mã hóa trong priority bằng logic-hoặc (LOG_INFO | LOG_USER), thì giá trị được cung cấp trong lệnh gọi openlog() sẽ được sử dụng.

Nếu openlog() chưa được gọi trước lệnh gọi tới syslog(), openlog() sẽ được gọi mà không có đối số.

Tăng một auditing event syslog.syslog với các đối số priority, message.

Thay đổi trong phiên bản 3.2: Trong các phiên bản trước, openlog() sẽ không được gọi tự động nếu nó không được gọi trước lệnh gọi tới syslog(), trì hoãn việc triển khai nhật ký hệ thống để gọi openlog().

Thay đổi trong phiên bản 3.12: Chức năng này bị hạn chế trong các trình thông dịch phụ. (Chỉ mã chạy trong nhiều trình thông dịch mới bị ảnh hưởng và hạn chế này không phù hợp với hầu hết người dùng.) openlog() phải được gọi trong trình thông dịch chính trước khi syslog() có thể được sử dụng trong trình thông dịch phụ. Nếu không nó sẽ tăng RuntimeError.

syslog.openlog([ident[, logoption[, facility]]])

Tùy chọn ghi nhật ký của các cuộc gọi syslog() tiếp theo có thể được đặt bằng cách gọi openlog(). syslog() sẽ gọi openlog() không có đối số nếu nhật ký hiện không mở.

Đối số từ khóa ident tùy chọn là một chuỗi được thêm vào trước mỗi tin nhắn và mặc định là sys.argv[0] với các thành phần đường dẫn dẫn đầu bị loại bỏ. Đối số từ khóa logoption tùy chọn (mặc định là 0) là một trường bit -- xem bên dưới để biết các giá trị có thể kết hợp. Đối số từ khóa facility tùy chọn (mặc định là LOG_USER) đặt tiện ích mặc định cho các tin nhắn không có tiện ích được mã hóa rõ ràng.

Tăng một auditing event syslog.openlog với các đối số ident, logoption, facility.

Thay đổi trong phiên bản 3.2: Trong các phiên bản trước, đối số từ khóa không được phép và bắt buộc phải có ident.

Thay đổi trong phiên bản 3.12: Chức năng này bị hạn chế trong các trình thông dịch phụ. (Chỉ mã chạy trong nhiều trình thông dịch mới bị ảnh hưởng và hạn chế này không liên quan đến hầu hết người dùng.) Điều này chỉ có thể được gọi trong trình thông dịch chính. Nó sẽ tăng RuntimeError nếu được gọi trong trình thông dịch phụ.

syslog.closelog()

Đặt lại các giá trị mô-đun nhật ký hệ thống và gọi thư viện hệ thống closelog().

Điều này khiến mô-đun hoạt động giống như khi được nhập lần đầu. Ví dụ: openlog() sẽ được gọi trong lệnh gọi syslog() đầu tiên (nếu openlog() chưa được gọi) và ident cũng như các tham số openlog() khác được đặt lại về mặc định.

Tăng auditing event syslog.closelog mà không có đối số.

Thay đổi trong phiên bản 3.12: Chức năng này bị hạn chế trong các trình thông dịch phụ. (Chỉ mã chạy trong nhiều trình thông dịch mới bị ảnh hưởng và hạn chế này không liên quan đến hầu hết người dùng.) Điều này chỉ có thể được gọi trong trình thông dịch chính. Nó sẽ tăng RuntimeError nếu được gọi trong trình thông dịch phụ.

syslog.setlogmask(maskpri)

Đặt mặt nạ ưu tiên thành maskpri và trả về giá trị mặt nạ trước đó. Các lệnh gọi tới syslog() với mức ưu tiên không được đặt trong maskpri sẽ bị bỏ qua. Mặc định là ghi lại tất cả các ưu tiên. Hàm LOG_MASK(pri) tính toán mặt nạ cho mức ưu tiên riêng lẻ pri. Hàm LOG_UPTO(pri) tính toán mặt nạ cho tất cả các mức độ ưu tiên lên đến và bao gồm pri.

Tăng một auditing event syslog.setlogmask với đối số maskpri.

Mô-đun xác định các hằng số sau:

syslog.LOG_EMERG
syslog.LOG_ALERT
syslog.LOG_CRIT
syslog.LOG_ERR
syslog.LOG_WARNING
syslog.LOG_NOTICE
syslog.LOG_INFO
syslog.LOG_DEBUG

Mức độ ưu tiên (cao đến thấp).

syslog.LOG_AUTH
syslog.LOG_AUTHPRIV
syslog.LOG_CRON
syslog.LOG_DAEMON
syslog.LOG_FTP
syslog.LOG_INSTALL
syslog.LOG_KERN
syslog.LOG_LAUNCHD
syslog.LOG_LPR
syslog.LOG_MAIL
syslog.LOG_NETINFO
syslog.LOG_NEWS
syslog.LOG_RAS
syslog.LOG_REMOTEAUTH
syslog.LOG_SYSLOG
syslog.LOG_USER
syslog.LOG_UUCP
syslog.LOG_LOCAL0
syslog.LOG_LOCAL1
syslog.LOG_LOCAL2
syslog.LOG_LOCAL3
syslog.LOG_LOCAL4
syslog.LOG_LOCAL5
syslog.LOG_LOCAL6
syslog.LOG_LOCAL7

Cơ sở vật chất, tùy thuộc vào tình trạng sẵn có trong <syslog.h> cho LOG_AUTHPRIV, LOG_FTP, LOG_NETINFO, LOG_REMOTEAUTH, LOG_INSTALLLOG_RAS.

Thay đổi trong phiên bản 3.13: Đã thêm LOG_FTP, LOG_NETINFO, LOG_REMOTEAUTH, LOG_INSTALL, LOG_RASLOG_LAUNCHD.

syslog.LOG_PID
syslog.LOG_CONS
syslog.LOG_NDELAY
syslog.LOG_ODELAY
syslog.LOG_NOWAIT
syslog.LOG_PERROR

Tùy chọn nhật ký, tùy thuộc vào tính khả dụng trong <syslog.h> cho LOG_ODELAY, LOG_NOWAITLOG_PERROR.

Ví dụ

Ví dụ đơn giản

Một tập hợp các ví dụ đơn giản:

nhập nhật  hệ thống

syslog.syslog('Đã bắt đầu xử lý')
nếu  lỗi:
    syslog.syslog(syslog.LOG_ERR, 'Đã bắt đầu xử lý')

Một ví dụ về cài đặt một số tùy chọn nhật ký, những tùy chọn này sẽ bao gồm ID tiến trình trong các tin nhắn được ghi lại và ghi các tin nhắn đến cơ sở đích được sử dụng để ghi nhật ký thư:

syslog.openlog(logoption=syslog.LOG_PID,  sở=syslog.LOG_MAIL)
syslog.syslog('Đã bắt đầu xử lý email...')