Fra*_*coN 2 python logging handler
我不知道为什么它不能记录该消息,我认为一切都设置正确。
并且logging.DEBUG在logging模块下定义
import logging
import sys
logger = logging.getLogger('collega_GUI')
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s %(levelname)s --file: %(module)s --riga: %(lineno)d, %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.debug('def __init__')
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试运行这个,它会起作用:
logger.warning('def __init__')
Run Code Online (Sandbox Code Playgroud)
这个级别变量的问题在哪里?
问题是调试级别的消息在到达处理程序之前就被记录器过滤掉了。问题通过更改handler.setLevel(logging.DEBUG)为 来解决logger.setLevel(logging.DEBUG)。
当日志消息沿链向下传递时,您可以在多个不同位置按日志级别进行过滤。默认情况下,记录器只传递 INFO 及以上,处理程序接受所有内容。如果您希望将不同级别的日志记录到不同的位置,则允许处理程序使用不同的日志级别非常有用。例如,您可以将记录器设置为 DEBUG,然后创建一个在 WARN 及以上级别记录到屏幕的处理程序,以及另一个在 DEBUG 及以上级别记录到文件的处理程序。用户获得了一些信息,并且日志文件很健谈。
| 归档时间: |
|
| 查看次数: |
1442 次 |
| 最近记录: |