更改python文件配置记录器的级别
我从一个文件中配置了一个记录器,并且希望在不必更改.conf文件的情况下更改日志的级别,而是使用内联代码更改python文件配置记录器的级别,python,logging,Python,Logging,我从一个文件中配置了一个记录器,并且希望在不必更改.conf文件的情况下更改日志的级别,而是使用内联代码 import logging.config logging.config.fileConfig('..\\LoggingConfig\\loggingfile.conf') logging.StreamHandler.setLevel(logging.info) logging.debug("Debug") logging.info("Info") 这应仅将“信息”日志行打印到屏幕上
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
您需要在
Logger
实例上调用setLevel
LOGGER = logging.getLogger('your.module.file.name')
LOGGER.setLevel(_level)
LOGGER.info('foo')
如果您只使用基本记录器,则可以这样做
logging.basicConfig(level=_level)
logging.info('foo')
请参见当使用logging.config.fileConfig并希望同时动态更改所有子记录器的级别时,您可以 a) 用于: b) 其他级别
logging.disable(logging.INFO)
太好了,我需要知道如何获取实例,使用
loggerInstance=logging.getLogger(\uuu name\uuu)
,谢谢!很高兴我能帮助你:)我试过的其他方法都失败了。只有这个答案(不幸的是,它没有被标记为正确的答案)真正适合我。出于某种原因,如果您执行一个basicConfig,然后再执行另一个basicConfig,后者不会更改日志记录级别。只有此方法才能进行后续更改。但愿我明白为什么。
logging.disable(logging.INFO)