Skip to main content
 首页 » 编程设计

python日志记录过滤器

2025年05月04日11dudu

我对日志记录中的过滤器这件事感到很困惑。我已经阅读了文档和日志记录手册。
我有一个用多个文件编写的应用程序。每个文件都有一个类及其异常。
- 主文件: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。