Django日志信息以及生产错误日志

时间:2018-05-21 08:36:37

标签: python django logging django-logging

我正在尝试记录INFO以及ERROR登录生产。 但我不确定如何提及同一项目的两个日志级别。

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'root': {
        'level': 'WARNING',
        'handlers': ['console', ],
    },
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s '
                      '%(process)d %(thread)d %(message)s'
        },
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'verbose'
        },
        'sns': {
            'level': 'ERROR',
            'class': 'project.abc.snshandler.SNSHandler',
            'formatter': 'verbose'

        }
    },
    'loggers': {
        'django.db.backends': {
            'level': 'ERROR',
            'handlers': ['console', ],
            'propagate': False,
        },
        'django.security.DisallowedHost': {
            'level': 'ERROR',
            'handlers': ['console', ],
            'propagate': False,
        },
        'project': {
            'level': 'ERROR',
            'handlers': ['console', 'sns'],
            'propagate': False,
        },

    },
}

在项目级别,我也想记录INFO日志。

1 个答案:

答案 0 :(得分:1)

您在配置中指定的日志记录级别将记录最小级别。回顾一下,这里是重要性顺序的预定义级别(从最低到最大):

  • DEBUG
  • INFO
  • WARNING
  • ERROR
  • CRITICAL

因此,如果您在配置中添加INFO,则会看到所有日志都标记为INFOWARNINGERRORCRITICAL

如果你真的想看 INFOERROR,你可以尝试编写一些自定义代码,但我不鼓励它,因为它闻起来像一个糟糕的设计。< / p>

参考

修改

这里的配置如下:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'root': {
        'level': 'WARNING',
        'handlers': ['console', ],
    },
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s '
                      '%(process)d %(thread)d %(message)s'
        },
    },
    'handlers': {
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
            'formatter': 'verbose'
        },
        'sns': {
            'level': 'ERROR',
            'class': 'project.abc.snshandler.SNSHandler',
            'formatter': 'verbose'

        }
    },
    'loggers': {
        'django.db.backends': {
            'level': 'INFO',
            'handlers': ['console', ],
            'propagate': False,
        },
        'django.security.DisallowedHost': {
            'level': 'INFO',
            'handlers': ['console', ],
            'propagate': False,
        },
        'project': {
            'level': 'INFO',
            'handlers': ['console', 'sns'],
            'propagate': False,
        },

    },
}