我看到了我能看到的地方
logger.exception("hello")
已执行。
但是没有记录在哨兵或文件上。
我有关于日志的设置,如下所示
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'formatters': {
'verbose': {
'format': '[%(asctime)s] %(levelname)s (%(module)s:%(funcName)s:%(lineno)d) %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
'null': {
'level': 'DEBUG',
'class': 'logging.NullHandler',
},
# Send all messages to console
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
},
# Warning messages are sent to admin emails
'mail_admins': {
'level': 'WARNING',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler',
},
# critical errors are logged to sentry
'sentry': {
'level': 'INFO',
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
},
},
'loggers': {
# This is the "catch all" logger
'': {
'handlers': ['console', 'sentry'],
'level': 'DEBUG',
'propagate': False,
},
'django.db.backends': {
'handlers': ['null'], # Quiet by default!
'propagate': False,
'level': 'DEBUG',
},
}
}
我用
记录东西 import logging
logger = logging.getLogger(__name__)
logger.exception("error")
logger.info({"error": "foo"})
为什么我会丢失一些日志?
(我已经跟着调试器中的代码执行了日志,但是在iftry / log文件中没有执行任何内容)..
答案 0 :(得分:1)
问题是由芹菜引起的,hijacks the root (''
) logger by default并丢弃任何先前配置的根记录器。这意味着您的配置会被忽略。
尝试添加此设置:
CELERYD_HIJACK_ROOT_LOGGER = False