【发布时间】:2022-10-23 07:10:05
【问题描述】:
我想装饰/包装一个函数并防止记录该函数范围内的所有日志。
def prevent_logs_wrapper(func):
...
...
...
@prevent_logs_wrapper
def some_logs():
logger.info('Log an info msg')
logger.warning('Log a warning msg')
而不是这个输出
[INFO] Log an info msg
[WARNING] Log an warning msg
我们不会得到任何日志。
【问题讨论】:
-
是的。您可以设置
logger.setLevel(logging.FATAL),然后在功能存在时恢复级别。但是,并不是说记录器通常在不同的线程之间共享,所以如果您的应用程序依赖于线程,这将不起作用。 -
我的代码使用线程,所以我不能完全阻止日志记录。我正在研究根据包装器调用的堆栈过滤日志。阻止包装器调用的所有内容。有一个日志功能“findCaller”可能会起作用。
标签: python logging python-decorators