Python:如何将所有记录器的记录级别设置为INFO

时间:2019-01-04 09:58:23

标签: python logging

我正在使用以下配置

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)

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

1 个答案:

答案 0 :(得分:0)

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

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

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

P.S。归功于https://stackoverflow.com/a/53250066/4696783