我试图用它logging.basicConfig来记录所有内容并logging.hanlers.RotatingFileHandler拥有一个maxBytes=1000000and backupCount=5。问题是,当我使用它时RotatingFileHandler,它也会记录一些重复的输出。我尝试删除basicConfig并仅使用RotatingFileHandler,但它没有记录我想要的每条消息。
例子:
logging.basicConfig(format=f, datefmt=date, level=lvl, filename=file_name)
handler = logging.handlers.RotatingFileHandler(file_name, maxBytes=1000000, backupCount=5)
logging.getLogger('').addHandler(handler)
Run Code Online (Sandbox Code Playgroud)
我将其更改为basicConfig通过以下方式删除:
handler = logging.handlers.RotatingFileHandler(file_name, maxBytes=1000000, backupCount=5)
handler.setFormatter(f)
handler.setLevel(lvl)
logging.getLogger('').addHandler(handler)
Run Code Online (Sandbox Code Playgroud)
上面的方法不起作用,因为RotatingFileHandler没有记录我想要的每条消息。为什么?
您从中获取的记录器的日志logging.getLogger('')记录级别默认设置为logging.WARNING。您需要在记录器本身以及与其关联的每个处理程序上设置所需的级别,以确保记录所需的消息。您的第二个代码片段设置处理程序的级别,但不设置记录器的级别。
https://docs.python.org/3/library/logging.html#logging.Logger.setLevel
| 归档时间: |
|
| 查看次数: |
5888 次 |
| 最近记录: |