У меня есть инфраструктура серверов Django и Celery, работающая одновременно на сервере Ubuntu.< /p>
Для регистрации я использую DiscordHandler и настроенный TimedRotatingFileHandler, определенный следующим образом:
Код: Выделить всё
class CustomizedTimedRotatingFileHandler(TimedRotatingFileHandler):
'''
log_name.date.log.log -> log_name.date.log
'''
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.namer = lambda name: name.replace(".log", "") + ".log"
Код: Выделить всё
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
**{
f"{k}_file": {
"level": "INFO",
"class": "api.logging.CustomizedTimedRotatingFileHandler",
"filename": "log/sync.log",
"when": "midnight",
"backupCount": 2,
"formatter": v,
} for k, v in {"django": "verbose", "celery": "celery"}.items()
}
},
'loggers': {
'django': {
'handlers': ['django_file'],
'level': 'INFO',
'propagate': True,
},
'django.server': {
'handlers': ['django_file'],
'level': 'INFO',
'propagate': False,
},
'celery': {
'handlers': ['celery_file'],
'level': 'INFO',
'propagate': False,
}
}
}

Я просмотрел журналы разногласий и увидел, что некоторые задания по сельдерею работают в полночь. И это не первый случай, на самом деле всегда было так, что в полночь были текущие задачи, которые прерывали ролловер.
Как мне получить правильную регистрацию файлов? Единственное, что я могу предположить, это то, что мне придется вручную выполнить Rollover (как задачу сельдерея).
Любая помощь приветствуется
Подробнее здесь: https://stackoverflow.com/questions/793 ... -celery-jo
Мобильная версия