Ich habe den Django-Server mit Nginx eingerichtet und auf einigen Seiten wird ein 403-Fehler angezeigt.
Wo finde ich die Django-Protokolle? Wo kann ich die Fehler im Detail sehen?
Ich habe den Django-Server mit Nginx eingerichtet und auf einigen Seiten wird ein 403-Fehler angezeigt.
Wo finde ich die Django-Protokolle? Wo kann ich die Fehler im Detail sehen?
Protokolle werden in Ihrer settings.py
Datei festgelegt. Ein neues Standardprojekt sieht folgendermaßen aus:
# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
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,
},
}
}
Standardmäßig werden keine Protokolldateien erstellt. Wenn Sie diese möchten, müssen Sie einen filename
Parameter zu Ihrem hinzufügenhandlers
'applogfile': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename': os.path.join(DJANGO_ROOT, 'APPNAME.log'),
'maxBytes': 1024*1024*15, # 15MB
'backupCount': 10,
},
Dadurch wird ein rotierendes Protokoll erstellt, das eine Größe von 15 MB hat und 10 historische Versionen enthält.
Im loggers
Abschnitt von oben müssen Sie applogfile
das handlers
für Ihre Anwendung hinzufügen
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
'APPNAME': {
'handlers': ['applogfile',],
'level': 'DEBUG',
},
}
In diesem Beispiel werden Ihre Protokolle in Ihrem Django-Stammverzeichnis in einer Datei mit dem Namen abgelegt APPNAME.log
logger = logging.getLogger('APPNAME')
in diesem Fall tun
views.py
Fügen Sie Ihrem hinzu settings.py
:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': 'debug.log',
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
},
}
Und es wird eine Datei erstellt, die debug.log
im Stammverzeichnis Ihres aufgerufen wird .
https://docs.djangoproject.com/de/1.10/topics/logging/
/var/www/debug.log
. Dadurch werden zwei separate Dateien erstellt, wenn sich Ihr Django-Projekt außerhalb des /var/www/
Verzeichnisses befindet. Bitte verwenden Sie 'filename': os.path.join(BASE_DIR, 'debug.log'),
stattdessen.
Richten Sie https://docs.djangoproject.com/de/dev/topics/logging/ ein, und diese Fehler werden dann wiedergegeben, wo Sie sie anzeigen. Standardmäßig neigen sie dazu, im Unkraut zu verschwinden, daher beginne ich immer mit einem guten Protokollierungssetup vor allem anderen.
Hier ist ein wirklich gutes Beispiel für eine Grundeinstellung: https://ian.pizza/b/2013/04/16/getting-started-with-django-logging-in-5-minutes/
Bearbeiten: Der neue Link wird verschoben zu: https://github.com/ianalexander/ianalexander/blob/master/content/blog/getting-started-with-django-logging-in-5-minutes.html
ian.pizza
, also hier der tatsächliche Link: ian.pizza/b/2013/04/16/...