Django Logger未记录日志,但所有其他记录器均正常工作

时间:2020-06-11 22:38:02

标签: python django logging

我已将Django应用程序配置为可以在生产环境中运行,但无法从django记录器中获取任何东西。

root记录器正在写出文件和Azure日志,因此我可以看到我的elasticsearch和opencensus日志写得很好,但是Django没什么问题。

此刻,我正在使用INFO级别,以查看是否有任何结果,但是一旦知道事情正在解决,我将对其进行调整。

DEBUG = False
LOGGING = {
    "disable_existing_loggers": False, 
    "filters": {
        "require_debug_false": {
            '()': 'django.utils.log.RequireDebugFalse',
        },
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'formatters': {
        'simple': {
            'format': '[%(asctime)s] %(levelname)s %(message)s',
        'datefmt': '%Y-%m-%d %H:%M:%S'
        },
        'verbose': {
            'format': '[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s',
        'datefmt': '%Y-%m-%d %H:%M:%S'
        },
    },
    "handlers": {
        "file": {
            "class": "logging.FileHandler", 
            "filename": os.path.join(APP_ROOT, 'logs', 'app.log'),
            "level": "INFO",
            "formatter": 'verbose',
            'filters': ['require_debug_false'],
        },
        'console': { # writes to the console
            'class': 'logging.StreamHandler',
            'level': 'INFO',
            'filters': ['require_debug_true'],
            'formatter': 'verbose'
        },
        'azure':{
            'level': 'INFO',
            'filters': ['require_debug_false'],
            'class': 'opencensus.ext.azure.log_exporter.AzureLogHandler',
            'formatter': 'verbose'
        },
    },
    "loggers": {
        'django': {
            'handlers': [
                'azure',
                'file',
                ],
            'level': 'INFO',
        },
        '': {
            'handlers': [
                'azure',
                'file',
               ],
            'level': 'INFO',
        },
    }, 
    "version": 1
}

1 个答案:

答案 0 :(得分:0)

因此,我发现答案是完全覆盖默认日志记录并从头开始构建它。

在我无法理解的Django路径中发生了什么事。

我强烈建议您访问此站点,因为它易于遵循以下说明-https://www.webforefront.com/django/setupdjangologging.html

    LOGGING = {
    'disable_existing_loggers': True, #<-- if true then make sure that you have a django and py.warnings logger
    'filters': {
        "require_debug_false": {
            '()': 'django.utils.log.RequireDebugFalse',
        },
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'formatters': {
        'simple': {
            'format': '[%(asctime)s] %(levelname)s %(message)s',
        'datefmt': '%Y-%m-%d %H:%M:%S'
        },
        'verbose': {
            'format': '[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s',
        'datefmt': '%Y-%m-%d %H:%M:%S'
        },
        'azure_verbose': {
            'format': '[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s traceId=%(traceId)s spanId=%(spanId)s',
        'datefmt': '%Y-%m-%d %H:%M:%S'
        },
    },
    'handlers': {
        'console': { # writes to the console
            'class': 'logging.StreamHandler',
            'level': 'INFO',
            'filters': ['require_debug_true'],
            'formatter': 'verbose'
        },
        'azure':{ # exports to Azure Monitor. Needs OPENCENSUS elements configured
            'level': 'INFO',
            'filters': ['require_debug_false'],
            'class': 'opencensus.ext.azure.log_exporter.AzureLogHandler',
            'formatter': 'azure_verbose'
        },
    }, 
    'loggers': {
        'arches': {
            "handlers": [
                "azure",
                "console",
                ],
        },
        'exporter': { # <-- exporter app logger
            "handlers": [
                "azure",
                "console",
                ],
        },
        'django': { # <-- must have one django 
            'handlers': [
                'azure',
                'console',
                ],
        },
        'py.warnings': { # <-- implement from default
            'handlers': [
                'azure',
                'console',
                ],
        },
        '': { # <-- catchall
            'handlers': [
                'azure',
                'console',
                ],
        },
    }, 
    'version': 1
}