Python在一个位置定义记录器,而无需使用基本配置或文件配置

时间:2018-11-23 16:34:46

标签: python logging module

在这里提出了有关如何在一个位置定义记录器的问题: 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

我已经浏览过文档,但是我无法弄清楚。我该怎么办?

0 个答案:

没有答案