首页 > 解决方案 > Python:使用 RFC 3164 发送具有优先级值的系统日志消息

问题描述

请帮助如何在 python 中使用 encodePriority(facility, priority) 类的日志记录模块。下面的示例 python 代码正在向 syslog 服务器发送消息,并且远程 UNIX 需要 RFC3164 中的日志,我正在尝试将优先级值设置为每个 syslog 消息的前缀,这是通过将设施编号乘以 8 然后添加数字来计算的严重性的值。

hostname = socket.gethostname()
ipaddress = socket.gethostbyname(hostname)

log_format = logging.Formatter('%(asctime)s  %(localhost)s  %(message)s', datefmt='%b %d %Y %H:%M:%S');
loggerConf = setup_logger(name="mylogger3", logfile='logs/my.log', formatter=log_format, level=10, disableStderrLogger=True)
logger2 = logging.LoggerAdapter(loggerConf, {'localhost': ipaddress})
logger2.info("sample message")



expected output:

<24>Apr 25 2020 02:38:24  10.20.30.40  sample message

其中 24 是从设施 *8 + 严重性 ==> 假设我将 fac 设置为 3,严重性设置为 0..

根据 RFC 3164:

   Numerical             Facility
      Code

       0             kernel messages
       1             user-level messages
       2             mail system
       3             system daemons
       4             security/authorization messages (note 1)
       5             messages generated internally by syslogd
       6             line printer subsystem
       7             network news subsystem
       8             UUCP subsystem
       9             clock daemon (note 2)
      10             security/authorization messages (note 1)
      11             FTP daemon
      12             NTP subsystem
      13             log audit (note 1)
      14             log alert (note 1)
      15             clock daemon (note 2)
      16             local use 0  (local0)
      17             local use 1  (local1)
      18             local use 2  (local2)
      19             local use 3  (local3)
      20             local use 4  (local4)
      21             local use 5  (local5)
      22             local use 6  (local6)
      23             local use 7  (local7)

    Numerical         Severity
      Code

       0       Emergency: system is unusable
       1       Alert: action must be taken immediately
       2       Critical: critical conditions
       3       Error: error conditions
       4       Warning: warning conditions
       5       Notice: normal but significant condition
       6       Informational: informational messages
       7       Debug: debug-level messages

标签: pythonloggingsyslogpython-logging

解决方案


推荐阅读