python - 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__)
解决方案
推荐阅读
- php - 使用引导产品卡表单显示数据库记录时出现问题
- validation - 一种优雅的获取结果的方式
基于 Result<_, E1> 和 Result ? - swift - RealityKit 在运行时更改 USDZ 漫反射材质
- rest-assured - 如何使用 Rest Assured 概念在控制台中显示 Json Array Response 正文
- spring - JPA Select 查询需要更多时间 - 超过 60 秒
- python - 将 dict 转储到现有的 yaml 文件中,只需在使用 ruamel.yaml 进行更新时将 dict 字符串表示形式写入文件
- java - 一个按钮应该在一分钟内只点击两次,我应该如何检查它?
- python - 当循环运行很长时间时,在循环中运行 django factory 不会创建所需数量的实例
- javascript - 我的水平滚动框没有正确对齐(下降)?
- javascript - 如何使用 Javascript dom 编辑特定的 html 元素?