我试图在我的应用程序中添加一些日志记录,但是我似乎无法显示正确的日志级别语句。我已将记录器设置为INFO
但它只在控制台和日志文件中显示warnings
和errors
我错过了什么吗?
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
由于
答案 0 :(得分:1)
在记录器上设置日志记录级别。如果未设置,则默认日志记录级别为30,即logging.WARNING
:
logger = logging.getLogger("mo_test")
logger.setLevel(logging.INFO)
The logging flow chart显示记录器本身如何通过记录级别(“记录器启用了呼叫级别?”)进行过滤,甚至在处理程序有机会处理记录之前( “处理程序启用了LogRecord级别?”):
答案 1 :(得分:0)
你似乎错过了对``logging.basicConfig(). Without this call,
logging`的调用处于未配置状态,任何事情都可能发生。