Python日志记录没有输出正确的级别?

时间:2015-03-09 19:26:48

标签: python-3.x

我试图在我的应用程序中添加一些日志记录,但是我似乎无法显示正确的日志级别语句。我已将记录器设置为INFO但它只在控制台和日志文件中显示warningserrors

我错过了什么吗?

import logging

logger = logging.getLogger("mo_test")
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

fh = logging.FileHandler('test.log')
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
fh.setLevel(logging.INFO)
fh.setFormatter(formatter)
ch.setFormatter(formatter)

logger.addHandler(fh)
logger.addHandler(ch)

logger.info("This is an Info")
logger.debug("this is a debug")
logger.warning("This is a warning")
logger.error("Oh error")

日志文件和控制台的内容仅为:

2015-03-09 15:32:44,601 - mo_test - WARNING - This is a warning
2015-03-09 15:32:44,601 - mo_test - ERROR - Oh error

由于

2 个答案:

答案 0 :(得分:1)

在记录器上设置日志记录级别。如果未设置,则默认日志记录级别为30,即logging.WARNING

logger = logging.getLogger("mo_test")
logger.setLevel(logging.INFO)

The logging flow chart显示记录器本身如何通过记录级别(“记录器启用了呼叫级别?”)进行过滤,甚至在处理程序有机会处理记录之前( “处理程序启用了LogRecord级别?”):

enter image description here

答案 1 :(得分:0)

你似乎错过了对``logging.basicConfig(). Without this call, logging`的调用处于未配置状态,任何事情都可能发生。