2012-10-11 8 views
5

Czytając oficjalną dokumentację django, nie zrozumiałem zbyt wiele. https://docs.djangoproject.com/en/dev/topics/logging/#configuring-loggingWłącz rejestrowanie Django także, jeśli DEBUG jest True

Chciałbym włączyć rejestrowanie także jeśli DEBUG w settings.py jest ustawiony na Prawdziwego. Chciałbym, aby błędy były rejestrowane w pliku.

Jak to zrobić?

Są to ustawienia domyślne django rejestrowania który obecnie mam teraz:

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'filters': { 
     'require_debug_false': { 
      '()': 'django.utils.log.RequireDebugFalse' 
     } 
    }, 
    'handlers': { 
     'mail_admins': { 
      'level': 'ERROR', 
      'filters': ['require_debug_false'], 
      'class': 'django.utils.log.AdminEmailHandler' 
     } 
    }, 
    'loggers': { 
     'django.request': { 
      'handlers': ['mail_admins'], 
      'level': 'ERROR', 
      'propagate': True, 
     }, 
    } 
} 

PS: Używam Apache + mod_wsgi w moim środowisku programistycznym, ponieważ używam maszyny rozwoju, który mam dostępu zdalnie w mojej sieci LAN, oznacza to, że nie używam serwera programistycznego django i nie widzę komunikatów dziennika konsoli.

Odpowiedz

4

Rejestrowanie Django nie jest domyślnie wyłączone w trybie DEBUG, chyba że zostało ustawione.

Dodaj poniżej do handlers części LOGGING

'file': 
     { 
      'level': 
       'INFO', 
      'class': 
       'logging.FileHandler', 
      'formatter': 
       'verbose', 
      'filename': 
       'myapp.log' 

     } 

Będzie zalogować aby myapp.log pliku w katalogu głównym projektu. Możesz podać pełną ścieżkę.

I dodać pole formatek do dict rejestrowania

'formatters': { 
     'verbose': { 
      'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' 
     }, 
     'simple': { 
      'format': 
       '%(levelname)s %(message)s' 
     }, 
    }, 
0

To jest przykład ustawień roboczych inspirowanych Simple Log to File example for django 1.3+

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'filters': { 
     'require_debug_false': { 
      '()': 'django.utils.log.RequireDebugFalse' 
     } 
    }, 
    'handlers': { 
     'mail_admins': { 
      'level': 'ERROR', 
      'filters': ['require_debug_false'], 
      'class': 'django.utils.log.AdminEmailHandler' 
     }, 
     'logfile': { 
      'level':'DEBUG', 
      'class':'logging.handlers.RotatingFileHandler', 
      'filename': SITE_ROOT + "/debug.log", 
      'maxBytes': 50000, 
      'backupCount': 2, 
      'formatter': 'custom', 
     }, 
    }, 
    'loggers': { 
     #'django': { 
     # 'handlers':['logfile'], 
     # 'level':'DEBUG', 
     # 'propagate': True, 
     #}, 
     #'django.request': { 
     # 'handlers': ['mail_admins', 'logfile'], 
     # 'level': 'DEBUG', 
     # 'propagate': True, 
     #}, 
     'nodeshot.core.mailing': { 
      'handlers': ['logfile'], 
      'level': 'DEBUG', 
     }, 
    }, 
    'formatters': { 
     'verbose': { 
      'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' 
     }, 
     'simple': { 
      'format': '%(levelname)s %(message)s' 
     }, 
     'custom': { 
      'format': '%(levelname)s %(asctime)s\n%(message)s' 
     }, 
    }, 
} 
Powiązane problemy