簡體   English   中英

是否可以為整個python項目設置默認日志文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM