【发布时间】:2015-07-02 14:13:17
【问题描述】:
我有一些有趣的任务 - 为 Django 编写自定义记录器,将请求(INFO 级别)和显示数据(DEBUG 级别)存储在文件中。 我不能使用标准的 Django 记录器。
你能指出我正确的方向吗? 我应该使用中间件吗?
谢谢。我很感激你的时间。
【问题讨论】:
我有一些有趣的任务 - 为 Django 编写自定义记录器,将请求(INFO 级别)和显示数据(DEBUG 级别)存储在文件中。 我不能使用标准的 Django 记录器。
你能指出我正确的方向吗? 我应该使用中间件吗?
谢谢。我很感激你的时间。
【问题讨论】:
到目前为止,我想出类似的东西:
import os
import logging
from django.conf import settings
# logging config
logging.basicConfig(filename=os.path.join(settings.BASE_DIR, 'debug.log'),
level=logging.DEBUG)
logger = logging.getLogger(__name__)
class FileLoggerMiddleware(object):
def process_response(self, request, response):
request_log = 'Path: {}, GET: {}, POST: {}'.format(
request.path, request.GET, request.POST)
logger.info(request_log)
# We have queries logging out of box
# But here what i wood wrote:
# from django.db import connection
# for q in connection.queries:
# query_log = "({}) QUERY ".format(q.time, q.sql ) //and more info
# logger.debug(query_log)
return response
【讨论】: