如何将GET / POSTS请求记录到本地文件?

时间:2018-01-08 23:27:16

标签: python django django-models django-rest-framework django-views

我想将以下在控制台上打印的数据记录到本地文件中。以下数据是网站应用程序的GETS和POSTS及其在控制台上的打印。我想将它写入本地日志文件。我是Django的新手。任何人请指导我。

[08/Jan/2018 22:25:05] "GET / HTTP/1.1" 200 5533
[08/Jan/2018 22:25:05] "GET /static/personal/css/bootstrap.min.css HTTP/1.1" 304 0
[08/Jan/2018 22:25:05] "GET /static/personal/img/logo.jpg HTTP/1.1" 304 0
[08/Jan/2018 22:25:05] "GET /static/personal/img/img_avatar2.png HTTP/1.1" 304 0
[08/Jan/2018 22:25:08] "GET /blog/ HTTP/1.1" 200 1909
[08/Jan/2018 22:25:11] "GET /contact/ HTTP/1.1" 200 1833
[08/Jan/2018 22:25:13] "GET / HTTP/1.1" 200 5533

我正在使用以下日志记录文件。我是否以正确的方式进行。请指导我提前谢谢。

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
       'console': {  # Log to stdout
           'level': 'INFO',
            'class': 'logging.StreamHandler',
        },
        'file': {
            'level': 'INFO',
            'class': 'logging.FileHandler',
            'filename': os.path.join(LOG_DIR, 'django_debug.log'),
        }
    },
    'root': {  # For dev, show errors + some info in the console
        'handlers': ['file'],
        'level': 'INFO',
    },
    'loggers': {
        'django.request': {  # debug logging of things that break requests
            'handlers': ['file'],
            'level': 'INFO',
            'propagate': True,
        },
    },
}

1 个答案:

答案 0 :(得分:1)

您的配置几乎正确。您只是没有使用2XX状态代码记录请求。

将记录器名称从django.request更改为django.server,以记录所有HTTP请求(而不仅仅是4XX和5XX)。

同样从文档中,记录器django是" django层次结构"中的消息的全能记录器,因此使用它来包含所有类型的django消息。