【问题标题】:Python Logging exc_info By DefaultPython 默认记录 exc_info
【发布时间】:2021-01-28 06:25:46
【问题描述】:

我正在寻找一种方法来让logging.infologging.warninglogging.error 等默认设置为exc_info=True。此时重构项目以包含此参数是不可行的,因此我正在寻找一种方法在项目范围内为 logging 模块设置此参数。

我正在专门寻找一种设置此参数的方法。像 sys.exc_infotraceback.format_exc() 这样检索异常的解决方法不是我想要的。

另外,如果这不可行,请告诉我。

【问题讨论】:

  • 这是可能的,但听起来一点用都没有。 exc 信息将是 NoneTypeNone,除非您从 except 块内登录。为什么你会想要默认的 true / on?
  • 由于我无法控制的项目要求...这可能来自配置还是我必须自己重载功能?我一直在阅读日志记录文档,但没有找到相关配置。
  • 您无法控制日志文件是否到处都是无用的NoneType: None
  • 是的; logging.Config 中有什么东西可以实现这种行为还是我应该去别处寻找?

标签: python python-3.x logging


【解决方案1】:

发布此答案以防万一有人遇到类似问题 - 取自 this question

我发现最简单的方法是在项目开始时使用functools.partial。这允许您更改默认参数值,同时仍然可以将其设置为 False 以进行特定的函数调用!

import logging
from functools import *

logging.info = partial(logging.info, exc_info=True)

【讨论】:

  • 这只会影响根记录器。
  • 在这种情况下,这就是我想要的行为;感谢您明确指出这一点,以防对其他人造成问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多