重新启动后,带有TimedRotatingFileHandler的Django日志记录模块记录到默认日志文件

时间:2019-12-10 07:14:27

标签: python django python-3.x logging python-logging

使用TimedRotatingFileHandler登录Django项目时,记录器会在开始时记录到默认文件,并且在午夜之后,它将开始记录到新文件,并在末尾附加日期。例:如果我给的文件名是server_logs,它将记录到该默认文件直到午夜,然后开始登录新文件,例如:server_logs.2019-12-09。到目前为止,一切都很好。但是,如果重新启动服务器,它将再次开始记录到server_logs文件,而不是当前日期的最新文件。我希望它即使在服务器重新启动后也继续记录到最新文件。我该如何解决这个问题?

此外,在日志文件中,在进行日志记录时,我只想要正在记录到该文件的文件夹名称和文件名。如果我使用%pathname,则会得到一个路径名称,例如:“ / some / log / path / appFolder / file.py”。如果我使用%filename,则只会得到“ file.py”。

例如:

2019-12-10 06:37:42,010,  ERROR,  views.py,  get, LineNo  13 : This is the message.

2019-12-10 03:54:47,173,  ERROR,  /some/long/path/name/that/I/want/to/avoid/testApp/views.py,  get,  LineNo  13  This is the message.

我想将其格式化为“ testApp / views.py”。

例如:

2019-12-10 06:37:42,010,  ERROR,  testApp/views.py,  get, LineNo  13 : This is the message.

我正在使用的配置是:

import os
import logging

logName = "server_logs"
apps_logging_path = os.getenv("apps_logging_folder") + logName
middleware_logging_path = os.getenv("middleware_logging_folder") + logName
apps_logger_level = "DEBUG"
middleware_logger_level = "DEBUG"
console_logger_level = "DEBUG"

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'large': {
            'format': '%(asctime)s,  %(levelname)s,  %(filename)s,  %(funcName)s, LineNo  %(lineno)d : %(message)s'
        },
        'tiny': {
            'format': '%(asctime)s  %(message)s  '
        }
    },
    'handlers': {
        'app_logger': {
            'level': apps_logger_level,
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'when': 'midnight',
            'interval': 1,
            'filename': apps_logging_path,
            'formatter': 'large',
        },
        'console' : {
            'level' : console_logger_level,
            'class' : 'logging.StreamHandler',
        },
        'middleware_logger': {
            'level': middleware_logger_level,
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'when': 'midnight',
            'interval': 1,
            'filename': middleware_logging_path,
            'formatter': 'large',
        },
    },
    'loggers': {
        'apps_logger': {
            'handlers': ["app_logger", "console"],
            'level': apps_logger_level,
            'propagate': False,
        },
        'middleware_logger': {
            'handlers': ['console', 'middleware_logger'],
            'level': middleware_logger_level,
            'propagate': False,
        },
    },
}

0 个答案:

没有答案
相关问题