我用nginx设置了django服务器,在某些页面中出现403错误。
我在哪里可以找到django日志?我在哪里可以看到错误的详细信息?
答案 0 :(得分:61)
settings.py
文件中设置了Logs。一个新的默认项目如下所示:
# 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,
},
}
}
默认情况下,这些不会创建日志文件。如果您需要这些参数,则需要在filename
handlers
参数
'applogfile': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename': os.path.join(DJANGO_ROOT, 'APPNAME.log'),
'maxBytes': 1024*1024*15, # 15MB
'backupCount': 10,
},
这将设置一个旋转日志,可以获得15 MB的大小并保留10个历史版本。
在上面的loggers
部分中,您需要将applogfile
添加到应用的handlers
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
'APPNAME': {
'handlers': ['applogfile',],
'level': 'DEBUG',
},
}
此示例将您的Django根目录放在名为APPNAME.log
答案 1 :(得分:18)
添加到您的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,
},
},
}
它会在你的根目录中创建一个名为debug.log
的文件。
https://docs.djangoproject.com/en/1.10/topics/logging/
答案 2 :(得分:11)
设置https://docs.djangoproject.com/en/dev/topics/logging/,然后这些错误将回显您指向它们的位置。默认情况下,它们往往会在杂草中消失,所以我总是先从一个好的日志记录设置开始。
以下是基本设置的一个非常好的示例: https://ian.pizza/b/2013/04/16/getting-started-with-django-logging-in-5-minutes/