使用 rsyslog 的 Python 日志记录级别

Posted

技术标签:

【中文标题】使用 rsyslog 的 Python 日志记录级别【英文标题】:Python logging levels with rsyslog 【发布时间】:2018-04-26 08:42:11 【问题描述】:

我正在尝试从 python 记录器中过滤 rsyslog.d/conf 文件中的级别,但没有过滤任何内容。

import logging
import logging.handlers

if __name__ == "__main__":
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    fh = logging.handlers.RotatingFileHandler('./logtest.log', maxBytes=10240, backupCount=5)
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    fh.setFormatter(formatter)
    logger.addHandler(fh)
    logger.info('INFO')
    logger.error('ERROR')

在我的 conf 文件中:

*.=info -/var/log/info.log

但是信息日志没有记录到该文件中,有什么想法吗?

【问题讨论】:

请更正代码对齐方式 logger.addHandler(fh) fh(可能是你的文件处理程序)没有定义,我看不出它会如何运行 抱歉错过了一点,更新了 对此我还是有点困惑。您是否尝试使用 rsyslog 或 python 登录到文件?如果 Python 正在写入文件,系统日志过滤器不会做任何事情。您可能想要的是一个系统日志处理程序:***.com/questions/3968669/… 说实话,这还不是全部代码。我在这里尝试做的是通过 local6 工具将消息发送到 rsyslog,该工具会将 INFO 级别的消息发送到单独的文件。 【参考方案1】:

这个问题已经解决了。问题确实出在 syslog 上,我的程序中有问题,没有将级别正确记录到设施中。

又名:它们都被记录为警告。

【讨论】:

以上是关于使用 rsyslog 的 Python 日志记录级别的主要内容,如果未能解决你的问题,请参考以下文章

rsyslog+loganalyzer日志服务器部署记录

使用rsyslog编程,产生trace信息,记录到日志中

rsyslog日志记录服务器

syslog/rsyslog的使用

03-openldap-rsyslog记录日志

rsyslog系统管理日志