我使用的是django-mailer库,在engine.py中它包含了日志调用:
...
if connection is None:
connection = get_connection(backend=EMAIL_BACKEND)
logging.info("sending message '{0}' to {1}".format(
message.subject.encode("utf-8"),
u", ".join(message.to_addresses).encode("utf-8"))
)
...但是,代码并没有为这个日志设置目的地。我想在不对库代码做任何修改的情况下设置它。
那么,我应该将选择要使用的文件的配置放在哪里呢?在Django的例子中,在settings.py文件中放一些东西行吗?这是推荐的还是不推荐的?
我已经通读了Python documentation on logging,但不清楚如何从不同的文件中设置它,使其在全局范围内工作。
另外,如何限制来自特定库的日志记录?因此,我可以将所有日志记录放到一个中心文件中,而不是放到一个专门用于django-mailer的文件中。
发布于 2014-11-15 01:12:39
您可以在设置文件中非常灵活地设置日志。大量的文档here。
发布于 2014-11-15 05:23:04
这只是@seddonym向您提供的日志文档的一个示例(在这种情况下,Django文档将比Python文档更有帮助)。在您的Django settings.py文件中,您可以包括一个日志记录配置,如下所示:
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
'custom': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': <path_to_your_log_file>,
'mode': 'a',
'maxBytes': 10000000,
'backupCount': 5,
'formatter': 'verbose'
}
},
'loggers': {
'': {
'handlers': ['custom'],
'level': 'INFO',
'propagate': True,
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
}
}
}https://stackoverflow.com/questions/26914136
复制相似问题