0

我正在尝试记录 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 日志。

4

1 回答 1

4

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

  • DEBUG
  • INFO
  • WARNING
  • ERROR
  • CRITICAL

因此,如果您INFO输入您的配置,您将看到所有标记为INFOWARNINGERROR和的日志CRITICAL

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

参考资料

编辑

您的配置如下所示:

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,
        },

    },
}
于 2018-05-21T08:44:28.450 回答