使用 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 日志记录级别的主要内容,如果未能解决你的问题,请参考以下文章