Django Logger:如何记录用户名

Sam*_*des 5 django django-middleware python-3.x django-rest-framework

我想实现我的Django项目(日志django 1.11Python 3.6)。我正在使用默认的Django记录器。

要获取username日志,我使用了django-requestlogging 1.0.1。到目前为止,除admin超级用户外,我没有任何其他用户。

当我在前端尝试GET请求时,发生错误,提示 'LogSetupMiddleware' is not callable.

  1. 此错误的原因是什么?如何使记录工作?

  2. 如何获取AnonymousUser日志?

文件settings.py片段:

INSTALLED_APPS= [
    ...
    'django_requestlogging',
]

MIDDLEWARE = [
    ...
    'django_requestlogging.middleware.LogSetupMiddleware',
    ...
]

LOGGING = {
    'version': 1,
    'formatters': {
        'standard' : {
            'format': '%(asctime)s %(username)s %(request_method)s',
        }, 
    },
}
Run Code Online (Sandbox Code Playgroud)

N.C*_*.C. 1

正如我在这里看到的,中间件类实际上是不可调用的。要修复它,您必须像这样覆盖该类:

一些/中间件/path.py

from django.utils.deprecation import MiddlewareMixin
from django_requestlogging.middleware import LogSetupMiddleware as Original

class LogSetupMiddleware(MiddlewareMixin, Original):
    pass
Run Code Online (Sandbox Code Playgroud)

并将 settings.py 中的中间件路径替换为新路径:

some.middleware.path.LogSetupMiddleware