Chcę mojego Django logging
plik wyjściowy, który ma zostać (ponownie) utworzony przy każdym wykonaniu serwera, a nie dołączany do poprzedniego uruchomienia.
Obecnie konfiguruję mój system logowania Django za pośrednictwem LOGGING
słownik konfiguracji, więc nie widzę, jak zadzwonić logging.handlers.FileHandler
z różnymi argumentami.
Odpowiedzi:
1 dla odpowiedzi № 1Myślę, że złym rozwiązaniem jest automatyczne usuwanie dzienników. Jeśli nadal chcesz iść do przodu: uruchom kod przy starcie za pomocą AppConfig.ready()
.
Przykład
Wykonywanie dowolnego kodu przy uruchamianiu, jeśli jesteś w trybie debugowania:
# rock_n_roll/apps.py
from django.apps import AppConfig
class RockNRollConfig(AppConfig):
def ready(self):
if setting.DEBUG:
# Delete, rename or do whatever to your log files.
Możesz sprawić, aby aplikacja ładowała tę podklasę AppConfig domyślnie w następujący sposób:
# rock_n_roll/__init__.py
default_app_config = "rock_n_roll.apps.RockNRollConfig"
Przeczytaj dokumentację, w szczególności ostrzeżenia i uwagi. https://docs.djangoproject.com/en/dev/ref/applications/#django.apps.AppConfig.ready
Uwaga: Nie zdziw się, jeśli gryzą cię kłody.
0 dla odpowiedzi nr 2
Nie możesz po prostu usunąć lub przenieść pliku przed uruchomieniem serwera?