【发布时间】:2017-03-14 14:15:28
【问题描述】:
我是 Python 新手,甚至更熟悉 Python 日志记录。
我的情况是,我有一个系统,我需要通过该过程跟踪数据。所以我决定使用 Python 的日志系统本身来跟踪信息。
最初我创建了一个新的日志记录处理程序,在发出函数中它将记录器发送到另一台服务器,前提是记录器在其extra 属性中有一些我用来跟踪的变量。
到目前为止一切顺利,在所有日志中(从调试到关键)我都可以跟踪数据。我的问题是,如果有人将LogLevel 设置为critical 并且我正在使用LogLevel info 跟踪数据,我将无法获得跟踪,因为不会处理日志。
我想到了两种解决方案。首先,创建一个自定义LogLevel 用于跟踪,我认为这不是正确的选择。第二个,我认为是正确的,是截取所有日志,并检查其中是否有额外的变量。如果日志有,不管日志级别,我都会以任何方式将日志发送到服务器。
由于我是 Python 新手,我无法理解日志系统的工作原理。我的处理程序中是否需要另一个函数?我需要创建自定义 LogRecord 吗?
class RQHandler(logging.Handler):
def __init__(
self, formatter=JSONFormatter(), level=logging.NOTSET,
connection_pool=None
):
# run the regular Handler __init__
logging.Handler.__init__(self, level)
self.formatter = formatter
def emit(self, record):
# Send to the other
...
【问题讨论】:
标签: python logging python-3.5