我的Django/uWSGI vassal的堆栈跟踪记录在哪里?
问题描述:
我正在运行我的Django站点作为UWSGI皇帝的封臣。我创建/etc/uwsgi-emperor/vassals/mysite.ini
如下:我的Django/uWSGI vassal的堆栈跟踪记录在哪里?
[uwsgi]
socket = /var/opt/mysite/uwsgi.sock
chmod-socket = 775
chdir = /opt/mysite
master = true
virtualenv = /opt/mysite_virtualenv
env = DJANGO_SETTINGS_MODULE=mysite.settings
module = mysite.wsgi:application
uid = www-data
gid = www-data
processes = 1
threads = 1
plugins = python3,logfile
logger = file:/var/log/uwsgi/app/mysite.log
vacuum = true
但唯一的日志我得到的是这样的事情:
[pid: 2887|app: 0|req: 7/7] 1.2.3.4() {52 vars in 936 bytes} [Fri Oct 13 20:46:04 2017] POST /mysite/login/ => generated 27 bytes in 2453 msecs (HTTP/1.1 500) 4 headers in 126 bytes (2 switches on core 0)
[pid: 2887|app: 0|req: 8/8] 1.2.3.4() {44 vars in 702 bytes} [Fri Oct 13 20:52:24 2017] GET/=> generated 1561 bytes in 2 msecs (HTTP/1.1 200) 4 headers in 124 bytes (2 switches on core 0)
哪里了500错误的堆栈跟踪? (有没有我需要启用的模块?)
答
问题是Django没有在任何地方发送日志。您需要:
- settings.py中
- send logs to UWSGI with
logging.StreamHandler
任何堆栈跟踪,通常会显示在您的控制台现在会出现在你的日志文件UWSGI定义测井。
例如:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'DEBUG',
'filters': None,
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': 'DEBUG',
},
},
}
对于其他日志选项(过滤器,格式......)看到https://docs.djangoproject.com/en/1.11/topics/logging/#configuring-logging(感谢solarissmoke的链接)。
您需要配置Django以记录堆栈跟踪 - 请参阅https://docs.djangoproject.com/en/1.11/topics/logging/#configuring-logging – solarissmoke
@solarissmoke感谢您的链接! – d3vid