更改python fileConfig记录器的级别

时间:2012-04-14 06:54:51

标签: python logging

我有一个从文件配置的记录器,想要更改我的日志记录级别,而不必更改.conf文件,而是使用内联代码;

import logging.config

logging.config.fileConfig('..\\LoggingConfig\\loggingfile.conf')

logging.StreamHandler.setLevel(logging.info)

logging.debug("Debug")
logging.info("Info")

这应该只将“信息”日志行打印到屏幕上。我不知道在哪个对象上调用setLevel()! logging.StreamHandler.setLevel(logging.info)在30分钟搜索后只是在黑暗中刺伤......

loggingfile.conf文件;

[loggers]
keys=root

[logger_root]
handlers=screen
level=NOTSET

[formatter_modfunc]
format=%(module)-20s  %(funcName)-25s %(levelno)-3s: %(message)s

[handlers]
keys=screen

[handler_screen]
class=StreamHandler
formatter=modfunc
level=DEBUG
args=(sys.stdout,)
qualname=screen

2 个答案:

答案 0 :(得分:7)

您需要在setLevel个实例上致电Logger

LOGGER = logging.getLogger('your.module.file.name')
LOGGER.setLevel(_level)
LOGGER.info('foo')

如果您只使用基本记录器,则可以这样做

logging.basicConfig(level=_level)
logging.info('foo')

请参阅http://docs.python.org/howto/logging.html

答案 1 :(得分:5)

使用logging.config.fileConfig并且您希望一次动态更改所有子记录器的级别时,您可以...

a)set level root logger

logging.getLogger().setLevel(logging.WARNING)

b)disable其他级别

logging.disable(logging.INFO)