python日志记录过滤器

标签 python python-3.x

我对日志记录中的过滤器这件事感到很困惑。我已经阅读了文档和日志记录手册。
我有一个用多个文件编写的应用程序。每个文件都有一个类及其异常。
- 主文件:mcm
- 在 mcm 中,我导入配置器并启动它的类
- 在配置器中我导入 rosApi 并启动它的类

我想达到的目标:
- 在主文件中,决定我要记录哪些模块及其级别。
- 一个处理程序。可在主文件中配置

我的想法是,我想在一个文件中打开和关闭给定模块的调试,每个运行时可自定义,选项传递给主文件。

例如:
如果我通过 -d,它将(另外)打印来自配置器的所有调试信息,但不打印 rosApi。
如果我通过 -D 它将打印来自配置器和 rosApi 的所有调试

最佳答案

我所做的是创建一个记录器模块,大致如下:

import os
import logging

logger = logging.getLogger()
fh = logging.handlers.RotatingFileHandler(logfile, maxBytes=10000000, backupCount=10)
fm = logging.Formatter('%(asctime)s %(module)s %(levelname)s %(message)s')
fh.setFormatter(fm)
logger.addHandler(fh)
level = os.environ['LOGGING'].upper()
level = getattr(logging, level)
logging.getLogger().setLevel(level)

然后我在所有模块的顶部做一个import logger

关于python日志记录过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11146954/

相关文章:

python-3.x - for 循环中的下划线 "_"

python-3.x - 在python函数中返回数据框

python - pygame:不打开窗口/'pygame.error: No available video device'

python - 如何从本地目录导入模块而不是 pip 安装的库?

python - 两个字符串中的常用字母

python - 从 href 属性 Python 创建一个带有漂亮汤的独特列表

python - 理解 python 线程错误

python - 如何使用 pd.Timestamp 函数将数据列更改为时间戳格式

python - 我的脚本和控制台中使用点积的不同输出

regex - 从文本文件中提取信息 block 并创建 Pandas 数据框并存储