我的代码是这样的
import logging
formatter = logging.Formatter("{asctime} - {name} - {levelname} - {message}",
"%d-%b-%y %H:%M", "{")
def _add_handler(handler: logging.StreamHandler) -> logging.StreamHandler:
handler.setFormatter(formatter)
handler.setLevel(20)
return handler
logging.basicConfig(
handlers={
_add_handler(logging.FileHandler("filename.log")),
_add_handler(logging.StreamHandler())
})
logging.info("hello world")
这是应该做的是将 "hello world"
记录到控制台和名为 filename.log
的文件中,严重性为 INFO
,这就是20
方法中的 setLevel
用于。但是,根本没有记录任何内容。我哪里出错了?
答案 0 :(得分:1)
您还需要为记录器设置日志记录级别。默认情况下,它设置为 logging.WARNING
,因此两个处理程序都看不到消息,更不用说确定是否应该处理它。
logging.basicConfig(
level=logging.INFO,
handlers={
_add_handler(logging.FileHandler("filename.log")),
_add_handler(logging.StreamHandler())
})