【发布时间】:2021-12-13 12:07:42
【问题描述】:
我想使用一个记录器,它也知道处理我的附加日志级别 verbose 和 trace。因此,我创建了一个从基本记录器派生的自定义记录器
import logging
class DefaultLogger(logging.Logger):
def __init__(self, name):
logging.Logger.__init__(self, name)
# Using propagation of child to parent, by default
self.propagate = True
self.setLevel(logging.NOTSET)
def verbose(self, msg, *args, **kwargs):
self.log(logging.VERBOSE, msg, *args, **kwargs)
def trace(self, msg, *args, **kwargs):
self.log(logging.TRACE, msg, *args, **kwargs)
我使用一些标准格式的记录器LogRecords attributes,例如filename 或funcName。
"format":"%(asctime)s - %(levelname)s - %(filename)s:%(funcName)s - %(message)s"
对于原始日志级别,这是一种魅力,
2021-10-28 09:47:32,039 - 信息 - uploadData.py:main - 消息
但是对于我的自定义日志级别,我得到了自定义记录器类的来源:
2021-10-28 09:47:32,040 - TRACE - DefaultLogger.py:trace - 消息
当然这不是我想要的,我对这个类不感兴趣,我想要调用方法。
我该怎么做才能解决这个问题?
【问题讨论】:
-
至今没有答案?我的问题是不是太复杂了?我的用例有那么不寻常吗?
标签: python logging formatting derived-class