首页 > 解决方案 > python,记录器,文件结构,全局配置

问题描述

为您的项目构建记录器文件的正确方法是什么,以及拥有不同配置的正确方法是什么?

所以现在我的文件结构是这样的

project_name
    folder_with_module_1
          module_1a.py
          module_1b.py
    folder_with_module_2
          module_2.py
    logger_config.ini
tests
.gitignore
readme
etc.

然后稍后在代码中我以这种方式使用它:

logging.config.fileConfig('../logger_config.ini')
logger = logging.getLogger(__name__)

在我的 logger_config.ini 中,它看起来像这样:

[loggers]
keys=root,DEFAULT

[handlers]
keys=consoleHandler

[formatters]
keys=defaultFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler

[logger_DEFAULT]
level=DEBUG
handlers=consoleHandler
qualname=DEFAULT
propagate=0

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=defaultFormatter
args=(sys.stdout,)

[formatter_defaultFormatter]
format= %(asctime)-15s %(threadName)-15s %(levelname)-8s %(module)-15s:%(lineno)-8s %(message)s
datefmt=

但我希望它不那么具体,所以我不必为每个文件提供不同的路径:所以它会更像它:

logging.config.fileConfig('logger_config.ini') < one path for every file
logger = logging.getLogger(__name__)

另外,我如何为某些文件使用不同的记录器配置?因此,例如在我的 logger_config.ini 中,我有一个文件 module_1b.py 的设置,它的格式与 formatter_defaultFormatter 不同?但同时在代码中我仍然可以拥有:

logger = logging.getLogger(__name__)

标签: pythonloggingfile-structure

解决方案


推荐阅读