Ich habe eine Infrastruktur von Django- und Celery-Servern, die gleichzeitig auf einem Ubuntu-Server laufen.< /p>
Für die Protokollierung verwende ich DiscordHandler und einen benutzerdefinierten TimedRotatingFileHandler, der wie folgt definiert ist:
Code: Select all
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"
Code: Select all
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,
}
}
}

< /p>
Ich habe die Discord-Protokolle durchgesehen und festgestellt, dass um Mitternacht einige Sellerie-Jobs arbeiteten. Und das ist nicht das erste Mal, denn es kam schon immer vor, dass es um Mitternacht laufende Aufgaben gab, die den Rollover unterbrachen.
Wie erhalte ich die korrekte Dateiprotokollierung? Meine einzige Vermutung ist, dass ich Rollover manuell ausführen muss (als Sellerie-Aufgabe).
Jede Hilfe ist willkommen