Настройте регистратор django для выполнения записи журналов в отдельный файл каждые 24 часа

#python #django #logging #error-logging #django-logging

Вопрос:

Я использую базовые функции ведения журнала django. Я настроил регистратор следующим образом. Что мне нужно , так это то, что я хочу каждые 24 часа создавать отдельный файл в каталоге журналов, чтобы все журналы были записаны в файлы журналов с учетом даты.

 LOGGING ={
    'version':1,
    'disable_existing_loggers': False,
    'formatters':{
        'simpleRe': {
            'format': '[{levelname}] [{asctime}] [{module}] {process:d} {thread:d} {message}',
            'style': '{',
        }
    },
    'handlers':{
        'to_file':{
            'level':'DEBUG',
            'class': 'logging.FileHandler',
            'filename':'./logs/debug.log',
            'formatter':'simpleRe',
        },
    },
    'loggers':{
        'django':{
            'handlers':['to_file'],
            'level':'DEBUG'
        }
    },
}

 

Я также хочу, чтобы имена файлов были примерно такими, как «debug_26102021.log» и т. Д.

Ответ №1:

Вы можете использовать ведение журнала.обработчики.TimedRotatingFileHandler и укажите конфигурацию обработчика в журнале.

 'handlers': {
    'file': {
        'level': 'INFO',
        'class': 'logging.handlers.TimedRotatingFileHandler',
        'filename': 'myproject.log',
        'when': 'D', # specifies the interval
        'interval': 1, # defaults to 1, only necessary for other values 
        'backupCount': 5, # how many backup file to keep, 5 days
        'formatter': 'verbose',
    },

},  
 

Ответ №2:

Конфигурация ведения журнала Django основана на конфигурации словаря, предоставляемой модулем ведения журнала . Вы можете использовать любой из обработчиков, предоставляемых модулем ведения журнала. В этом случае это был бы обработчик файлов TimedRotatingFileHandler.

 'handlers':{
    'to_file':{
        'level':'DEBUG',
        'class': 'logging.handlers.TimedRotatingFileHandler',
        'when': 'D',
        'interval': 1,
        'backupCount': 0,
        'filename':'./logs/debug.log',
        'formatter':'simpleRe',
    },
},