我有一个自定义日志处理程序,我想处理所有日志消息级别(INFO,WARN,DEBUG,ERROR等)并将其发送到数据分析服务器.对于每条消息,数据将包括记录和原始请求对象上的字段.
问题是我没有看到附加到任何记录的请求对象.我在官方文档中发现只有django.request消息将请求对象附加到记录中,但没有提到具体的django.request消息.(https://docs.djangoproject.com/en/1.9/topics/logging/#django-request).
什么是django.request消息?他们如何/何时开除?如何重新路由每个日志消息以在其上包含请求对象,以便我的处理程序可以附加将发送到代理服务器的数据?
---- ----处理
class LogHandler(logging.Handler):
request = None
def __init__(self, request=None):
logging.Handler.__init__(self)
def parse_record_to_json(self, record):
import json
created = datetime.datetime.fromtimestamp(record.created)
return {
'timestamp': created.strftime('%m/%d/%Y %H:%M:%S'),
'method': record.funcName,
'level': record.levelname,
'line': record.lineno,
'module': record.module,
'message': record.getMessage(),
'path': record.pathname,
}
def emit(self, record):
user_id = None
try:
self.request = record.request
if self.request.user.is_authenticated():
user_id = self.request.user.id
except:
print "this must not be a django.request message"
self.request = None
from .event import SendEvent
json_record = self.parse_record_to_json(record)
level = json_record.pop('level', None) …Run Code Online (Sandbox Code Playgroud)