by Guest » 11 Jan 2025, 12:42
Python 3.12.3, Celery 5.3.6, Django 4.2.11, Ubuntu 22.04.4
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"
Die Projektprotokollierung wird in der Einstellungsdatei konfiguriert:
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,
}
}
}
Im Moment habe ich zwei Protokolldateien und dann eine Datei von heute (die Protokolle nur von Django erhält, nicht von Celery).

< /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
Python 3.12.3, Celery 5.3.6, Django 4.2.11, Ubuntu 22.04.4
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]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]
Die Projektprotokollierung wird in der Einstellungsdatei konfiguriert:
[code]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,
}
}
}
[/code]
Im Moment habe ich zwei Protokolldateien und dann eine Datei von heute (die Protokolle nur von Django erhält, nicht von Celery).
[img]https://i.sstatic.net/0kEKNEyC.png[/img]
< /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