[英]Is it possible to set default log file for an entire python project?
我正在使用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文檔,但不清楚如何從其他文件進行設置,以使其在全局范圍內工作。
另外,是否要限制來自特定庫的日志記錄? 因此,我可以將所有日志都轉到僅用於django-mailer的文件中,而不是將所有日志都轉到一個中央文件中。
您可以在設置文件中靈活地設置日志記錄。 這里有大量的文檔。
只是一個與@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,
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.