我需要从我的Python应用程序login到syslog。 在系统日志我想过滤消息从我的应用程序自己的文件。 我正在使用Debian 8.3。
我的rsyslog规则:
# cat /etc/rsyslog.d/99-MyLog.conf :syslogtag, isequal, "MyLog" /var/log/mylog.log :msg, contains, "MyLog" /var/log/mylog.log
和我的python脚本/tmp/test.py :
import logging.handlers my_logger = logging.getLogger('MyLog') my_logger.setLevel(logging.INFO) handler = logging.handlers.SysLogHandler(address = '/dev/log') formatter = logging.Formatter('MyLog: %(message)s') handler.setFormatter(formatter) my_logger.addHandler(handler) my_logger.info("Test Log 123")
如果发送消息到系统日志:
# logger -t MyLog "Test from bash logger" # logger "MyLog Test from bash logger" # python /tmp/test.py
filter仅适用于没有标签的logging器命令:
# tail -n 3 /var/log/syslog Jun 30 09:45:42 server MyLog: Test from bash logger Jun 30 09:45:44 server martin: MyLog Test from bash logger Jun 30 09:45:47 server MyLog: Test Log 123 # cat /var/log/mylog.log Jun 30 09:45:44 server martin: MyLog Test from bash logger
我做什么不好? 我不想按进程名称筛选。
您需要在rsyslogconfiguration的代码中包含: 尝试以下操作:
:syslogtag, isequal, "MyLog:" /var/log/mylog.log