【发布时间】:2019-01-14 06:07:52
【问题描述】:
使用Config Dict,我想在本地 Python 3 模块中将日志配置为日志级别 INFO,而在主文件中我想配置日志级别 DEBUG。所有配置都应该在主文件中完成,而不是在模块中,这样我就可以在不接触模块的情况下更改日志记录。
这里是一个例子。给定模块文件log_try_module.py:
import logging
log = logging.getLogger(__name__)
def do_something():
log.debug("This is something to DEBUG.")
log.info("This is something to INFO.")
log.warning("This is something to WARN.")
和主文件log_try_main.py:
import logging
log = logging.getLogger(__name__)
import log_try_module
log.debug("This is mainly to DEBUG.")
log.info("This is mainly to INFO.")
log.warning("This is mainly to WARN.")
log_try_module.do_something()
logging.config.dictConfig(dict(
version=1,
disable_existing_loggers=False,
handlers={
'hr': {'class': 'logging.StreamHandler',
'level': logging.DEBUG},
'hm': {'class': 'logging.StreamHandler',
'level': logging.INFO}
},
loggers={
'log_try_module': {'handlers': ['hm'],
'level': logging.INFO}
},
root={
'handlers': ['hr'],
'level': logging.DEBUG,
}
))
我正在寻找这样的运行输出:
$ python3 log_try_main.py
This is mainly to DEBUG.
This is mainly to INFO.
This is mainly to WARN.
This is something to INFO.
This is something to WARN.
请注意没有来自log_try_module 的调试消息发出!
我已经尝试过传递各种配置字典,但我从来没有得到我正在寻找的输出。出了什么问题?
【问题讨论】:
标签: python python-3.x logging module