2016-09-08 3 views
1

Ich würde gerne Logging verwenden, um sicherzustellen, dass meine Anwendung korrekt funktioniert, aber ich kann es nicht zuverlässig arbeiten.Django Logging funktioniert intermittierend

Ich habe das Problem erst bemerkt, nachdem ich alle vorhandenen Zeilen aus der Protokolldatei gelöscht habe und ich bin mir nicht sicher, ob dies zu anderen Zeiten geschieht oder nicht, aber manchmal werden die angeforderten Informationen erfolgreich in meine Protokolldatei aufgenommen. und zu anderen Zeiten ist nichts und die Datei bleibt leer.

ich habe es wie so einrichten, logger = logging.getLogger(__name__) und sind mit logger.info("Log This!")

Ist dies manuell verursacht Dinge aus der Protokolldatei zu löschen? Oder stimmt etwas mit meiner Konfiguration nicht?

LOGGING = {'version': 1, 
    'disable_existing_loggers': False, 
    'formatters': { 
     'verbose': { 
      'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s", 
      'datefmt' : "%d/%b/%Y %H:%M:%S" 
     }, 
     'simple': { 
      'format': '%(levelname)s %(message)s' 
     }, 
    }, 
    'handlers': { 
     'file': { 
      'level': 'INFO', 
      'class': 'logging.FileHandler', 
      'filename': os.path.join(BASE_DIR, 'logs/GeniusLogs.log'), 
      'formatter': 'verbose' 
     }, 
    }, 
    'loggers': { 
     '': { 
      'handlers': ['file'], 
      'level': 'INFO', 
      'propagate': True 
     }, 
     'django': { 
      'handlers':['file'], 
      'propagate': True, 
      'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'), 
     }, 
    } 
} 

bearbeiten

Nachdem sie mit ihm spielen, scheint es, dass die Protokolldatei manuell bearbeiten ist, was das Problem verursacht. Nachdem ich die Datei bearbeitet habe, muss ich eine Materialänderung in den Logging-Einstellungen vornehmen, damit sie wieder funktioniert. (Das Auskommentieren der Django-App und das Laden einer Seite wird normalerweise funktionieren).

Antwort

1

Am besten ist es ein Protokoll über die Befehlszeile löschen:

with open('AlmondKing/logs/GeniusLogs.log', 'w'): 
    pass