Django - 自定义记录器

时间:2015-07-02 14:13:17

标签: django logging

我有一些有趣的任务 - 为Django编写自定义记录器,它在文件中存储请求(INFO级别)和显示数据(DEBUG级别)。 我不能使用标准的Django记录器。

你能指出我正确的方向吗? 我应该使用中间件吗?

感谢。我很感激你的时间。

1 个答案:

答案 0 :(得分:0)

到目前为止,我发现了类似的内容:

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