【问题标题】:Django Logger: How to log UsernameDjango Logger:如何记录用户名
【发布时间】:2018-05-10 16:49:12
【问题描述】:

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

为了在日志中获取username,我使用了django-requestlogging 1.0.1。 截至目前,除了管理员超级用户之外,我没有任何其他用户。

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

  1. 此错误的原因是什么?如何进行日志记录?

  2. 如何在日志中获取AnonymousUser

文件settings.py sn-p:

INSTALLED_APPS= [
    ...
    'django_requestlogging',
]

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

LOGGING = {
    'version': 1,
    'formatters': {
        'standard' : {
            'format': '%(asctime)s %(username)s %(request_method)s',
        }, 
    },
}

【问题讨论】:

    标签: django python-3.x django-rest-framework django-middleware


    【解决方案1】:

    正如我所见,here 中间件类确实不可调用。要修复它,您必须像这样覆盖该类:

    一些/中间件/path.py

    from django.utils.deprecation import MiddlewareMixin
    from django_requestlogging.middleware import LogSetupMiddleware as Original
    
    class LogSetupMiddleware(MiddlewareMixin, Original):
        pass
    

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

    some.middleware.path.LogSetupMiddleware

    【讨论】:

    • 我做到了,但发现错误AttributeError: 'dict' object has no attribute 'iteritems'。看起来包不支持 Python3
    猜你喜欢
    • 2013-09-19
    • 1970-01-01
    • 2018-09-15
    • 2017-09-25
    • 1970-01-01
    • 2012-06-04
    • 2019-01-14
    • 2015-10-03
    • 2019-04-09
    相关资源
    最近更新 更多