在这里提出了有关如何在一个位置定义记录器的问题: Using Python logging in multiple modules
但是,最重要的两个答案使用基本配置或文件配置。我不想使用文件配置,因为我希望能够使用命令行参数动态调整级别。我不想使用基本配置,因为我的配置不是基本配置。
这不是库代码,因此我不关心导入模块时可能发生的情况。我的代码也只有一个入口点。
这是我目前所拥有的(简化)版本:
temp1.py:
_defineCaching()_
temp2.py:
import logging
import sys
import temp2
formatter = logging.Formatter(
fmt = '%(asctime)s - %(module)s - %(levelname)s ===> %(message)s'
)
logger = logging.getLogger('root')
logger.setLevel(logging.DEBUG)
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.info("THIS IS AN INFO MESSAGE IN TEMP 1")
temp2.do_something()
这是输出:
import logging
logger = logging.getLogger(__name__)
logger.info('In temp 2')
def do_something():
logger.critical('doing someting in temp 2')
我想要的输出将是: 1)也将输出格式化为文件temp2.py,然后 2)还将module_level日志记录消息记录在temp2.py
中我已经浏览过文档,但是我无法弄清楚。我该怎么办?