您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python日志记录处理程序中setLevel的意义是什么?

python日志记录处理程序中setLevel的意义是什么?

它允许更好的控制。认情况下,root记录程序已WARNING设置级别,这意味着它不会打印较低级别的消息(无论如何设置处理程序的级别!)。但是,如果您将根记录程序的级别设置为DEBUG,则确实会将消息发送到日志文件

import logging
import logging.handlers

a = logging.getLogger('myapp')
a.setLevel(logging.DEBUG)   # set root's level
h = logging.handlers.RotatingFileHandler('foo.log')
h.setLevel(logging.DEBUG)
a.addHandler(h)
print a.getEffectiveLevel() 
a.debug('foo message')
a.warn('warning message')

现在,您要添加不记录调试信息的新处理程序的映像。您可以通过简单地设置处理程序日志记录级别来做到这一点:

import logging
import logging.handlers

a = logging.getLogger('myapp')
a.setLevel(logging.DEBUG)   # set root's level

h = logging.handlers.RotatingFileHandler('foo.log')
h.setLevel(logging.DEBUG)
a.addHandler(h)

h2 = logging.handlers.RotatingFileHandler('foo2.log')
h2.setLevel(logging.WARNING)
a.addHandler(h2)

print a.getEffectiveLevel() 
a.debug('foo message')
a.warn('warning message')

现在,日志文件foo.log将包含两条消息,而该文件foo2.log将仅包含警告消息。您可能对只包含错误级别消息的日志文件感兴趣,然后只需添加aHandler并将其级别设置为logging.ERROR,一切都使用相同的Logger

您可能会将Logger日志记录级别视为对给定的记录器 及其处理程序 “感兴趣”的消息的全局限制。记录器 随后 考虑的消息将发送到处理程序,它们执行自己的过滤和记录过程。

python 2022/1/1 18:34:21 有217人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶