使用换行符处理日志消息

时间:2014-07-10 09:54:56

标签: python logging

目前我们处理来自python脚本的日志消息,如下所示:

  • 脚本使用FileHandler将输出写入文本文件。
  • check-logfiles工具过滤掉所有INFO消息
  • 结果通过邮件发送给我们(自定义解决方案,不使用日志记录模块)。

这很有效,但是如果日志消息中有换行符,则这不起作用,因为check-logfiles工具基于行工作。

示例:

logger.info('foo\nbar')

示例输出:

2014-07-10 11:52:11 foo.utils.importutils: INFO    [18473] foo
bar

foo行被过滤,但bar被邮寄给我们。

如何更好地处理这个问题?我希望foo\nbar一个消息一样处理。

1 个答案:

答案 0 :(得分:1)

考虑使用日志邮件处理程序

e.g。使用logbook包,logbook.MailHandler处理程序甚至可以处理复杂的日志记录,甚至可以选择设置模板,根据记录的记录属性呈现电子邮件内容。

在这种情况下,日志记录在一个结构中保存日志消息,该结构不会像新的行一样混乱,就像您将日志写入文本文件一样。

Python stdlib日志记录还提供了SMTPHandler,但在这里我无法提供真实的体验。