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 facility và level. Đố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ọiopenlog()sẽ được sử dụng.Nếu
openlog()chưa được gọi trước lệnh gọi tớisyslog(),openlog()sẽ được gọi mà không có đối số.Tăng một auditing event
syslog.syslogvớ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ớisyslog(), trì hoãn việc triển khai nhật ký hệ thống để gọiopenlog().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 khisyslog()có thể được sử dụng trong trình thông dịch phụ. Nếu không nó sẽ tăngRuntimeError.
- 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ọiopenlog().syslog()sẽ gọiopenlog()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.openlogvớ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
RuntimeErrornế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ọisyslog()đầu tiên (nếuopenlog()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.closelogmà 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
RuntimeErrornế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àmLOG_MASK(pri)tính toán mặt nạ cho mức ưu tiên riêng lẻ pri. HàmLOG_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.setlogmaskvớ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>choLOG_AUTHPRIV,LOG_FTP,LOG_NETINFO,LOG_REMOTEAUTH,LOG_INSTALLvàLOG_RAS.Thay đổi trong phiên bản 3.13: Đã thêm
LOG_FTP,LOG_NETINFO,LOG_REMOTEAUTH,LOG_INSTALL,LOG_RASvàLOG_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>choLOG_ODELAY,LOG_NOWAITvàLOG_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 ký hệ thống
syslog.syslog('Đã bắt đầu xử lý')
nếu có 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, cơ sở=syslog.LOG_MAIL)
syslog.syslog('Đã bắt đầu xử lý email...')