仅将信息级别条目记录到单独的文件中

时间:2012-04-13 20:35:07

标签: python logging

所以我使用python的内置日志记录模块来执行日志记录。一般来说,我真的很喜欢它的工作方式,但我想知道是否有一个简单的方法来做到以下几点:

我希望在脚本执行时将数据记录到文件和控制台,最好使用logger.info()。我还想将警告/错误记录到控制台,最好使用logger.warning()和logger.error()。那部分很容易。但是,我还想如果警告/错误也没有进入信息日志。

现在根据我的理解,如果我在信息级别设置了处理程序,它将始终在信息级别及更高级别传递任何内容。

我能想到的唯一解决方案是将我的日志记录分成两个独立的记录器,但我想避免这种情况。

2 个答案:

答案 0 :(得分:2)

虽然我在询问之前确实做过搜索,但实际上我在这个问题中找到了答案:

Logging, StreamHandler and standard streams

答案 1 :(得分:0)

我认为更简洁的方法是根据日志记录的级别在处理程序中以不同方式处理日志消息。 LogRecord个对象具有levelnolevelname属性,因此您几乎可以将logging.error()logging.warning()logging.debug()区分开来。

更多详情:http://docs.python.org/library/logging.html#logrecord-objects