哪个 Django/Python 处理程序 class 会将日志传递给 UWSGI 记录器?
Which Django/Python handler class will pass logs to the UWSGI logger?
我是运行我的Django站点,是UWSGI emperor的附庸。我创建了 /etc/uwsgi-emperor/vassals/mysite.ini
如下:
[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
但是 file:/var/log/uwsgi/app/mysite.log
中没有出现 Django 日志。
哪个处理程序 class 会将日志传递给 UWSGI?
可以使用logging.StreamHandler
class。例如在settings.py
中定义LOGGING如下:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'DEBUG',
'filters': None,
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': 'DEBUG',
},
},
}
我是运行我的Django站点,是UWSGI emperor的附庸。我创建了 /etc/uwsgi-emperor/vassals/mysite.ini
如下:
[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
但是 file:/var/log/uwsgi/app/mysite.log
中没有出现 Django 日志。
哪个处理程序 class 会将日志传递给 UWSGI?
可以使用logging.StreamHandler
class。例如在settings.py
中定义LOGGING如下:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'DEBUG',
'filters': None,
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': 'DEBUG',
},
},
}