首页 > 解决方案 > Python:如何将所有记录器的日志记录级别设置为 INFO

问题描述

我正在使用以下配置

import logging


FORMAT = '%(levelname)s: %(asctime)-15s: %(filename)s: %(funcName)s: %(module)s: %(message)s'
logging.basicConfig(filename="/var/log/out.log", level=logging.INFO, format=FORMAT)
LOGGER = logging.getLogger("Customer")

然后是我导入的一些库。这些库具有调试日志记录语句,例如

 LOGGER = logging.getLogger(__name__)
 LOGGER.debug('add_timeout: added timeout %s; deadline=%s at %s',
                     timeout_id, deadline, timeout_at)

当我运行我的程序时,它也会打印内部库的调试日志。我想完全避免调试日志。

标签: pythonlogging

解决方案


下面的代码应该可以解决问题。

loggers = [logging.getLogger(name) for name in logging.root.manager.loggerDict]
for logger in loggers:
    logger.setLevel(logging.INFO)

第一行返回实例化的日志列表。for 循环只是将级别设置为所有日志。

PS学分https://stackoverflow.com/a/53250066/4696783


推荐阅读