如何设置 uWSGI vassal 名称以获得更好的日志参考?
How to setup uWSGI vassal names for better log reference?
信息:
框架:Django 2.X < 3.x ;
服务:监督; uWSGI
主机:CentOS Linux 7
你好,我目前正在测试如何在我的主机上使用 uWSGI 部署多个 django 应用程序。我根据我的主机和 uWsgi 提供的手册设置了所有内容并且它有效。但是我想进一步定制所有内容,以便我可以更好地理解所有内容。
据我了解,我的 uWSGI 服务 uwsgi.ini
目前在 emperor 模式下工作,并为我的两个不同的应用程序 baron_app.ini
和 prince_app.ini
提供 vassal 来处理我的不同应用程序。
问题
我注意到 err.log
对于调试多个应用程序有点混乱。
例如...
announcing my loyalty to the Emperor...
Sat May 2 21:37:58 2020 - [emperor] vassal baron_app.ini is now loyal....
[pid: 26852|app: 0|req: 2/2].....
问题:有没有办法给我的vassal起一个名字,这样它就会打印在日志中?或者告诉 uWSGI 在日志中设置某种进程和应用程序日志关系(Emperor - Vassals - Worker 等)的方法?
例如我可以想象这样的事情,在查找错误时会更容易。
#baron_app: announcing my loyalty to the Emperor...
#emperor: Sat May 2 21:37:58 2020 - [emperor] vassal baron_app.ini is now loyal....
#prince_app: [pid: 26852|app: 0|req: 2/2].....
我尝试了 procname-prefix
和 vassal_name
之类的方法,但它似乎不起作用 - 可能是因为我不知道把它放在哪里,在 uwsgi.ini
或 vassals*.ini
?
我当前的设置...
...< etc < services.d < uwsgi.ini**
[program:uwsgi]
command=uwsgi --master -- %(ENV_HOME)s/uwsgi/apps-enabled
autostart=true
autorestart=true
stderr_logfile = ~/uwsgi/err.log
stdout_logfile = ~/uwsgi/out.log
stopsignal=INT
vacuum = 1
...< uwsgi < apps-enabled < baron_app.ini**
[uwsgi]
base = /home/kiowa/baron_app/baron_app
chdir = /home/kiowa/baron_app/
static_files = /home/kiowa/baron_app/
http = :8080
master = true
wsgi-file = %(base)/wsgi.py
touch-reload = %(wsgi-file)
static-map = /static=%(static_files)/static_storage/production_static
enable-threads = true
single-interpreter = true
app = wsgi
virtualenv = /home/kiowa/.local/env_baron
plugin = python
uid = kiowa
gid = kiowa
...< uwsgi < apps-enabled < baron_app.ini**
[uwsgi]
base = /home/kiowa/prince_app/baron_app
chdir = /home/kiowa/prince_app/
static_files = /home/kiowa/prince_app/
http = :8000
master = true
wsgi-file = %(base)/wsgi.py
touch-reload = %(wsgi-file)
static-map = /static=%(static_files)/static_storage/production_static
enable-threads = true
single-interpreter = true
app = wsgi
virtualenv = /home/kiowa/.local/prince_app
plugin = python
uid = kiowa
gid = kiowa
好的,我可以通过将其放入我的 vassals.ini
来分离我的 vassal 日志文件
; set app / error Log - check
logger = file:%(var_logs)/vassal_baron/baron_app.log
; disable default req log and set request Log and - check
req-logger = file:%(var_logs)/vassal_baron/baron_request.log
disable-logging = true
信息:
框架:Django 2.X < 3.x ;
服务:监督; uWSGI
主机:CentOS Linux 7
你好,我目前正在测试如何在我的主机上使用 uWSGI 部署多个 django 应用程序。我根据我的主机和 uWsgi 提供的手册设置了所有内容并且它有效。但是我想进一步定制所有内容,以便我可以更好地理解所有内容。
据我了解,我的 uWSGI 服务 uwsgi.ini
目前在 emperor 模式下工作,并为我的两个不同的应用程序 baron_app.ini
和 prince_app.ini
提供 vassal 来处理我的不同应用程序。
问题
我注意到 err.log
对于调试多个应用程序有点混乱。
例如...
announcing my loyalty to the Emperor...
Sat May 2 21:37:58 2020 - [emperor] vassal baron_app.ini is now loyal....
[pid: 26852|app: 0|req: 2/2].....
问题:有没有办法给我的vassal起一个名字,这样它就会打印在日志中?或者告诉 uWSGI 在日志中设置某种进程和应用程序日志关系(Emperor - Vassals - Worker 等)的方法?
例如我可以想象这样的事情,在查找错误时会更容易。
#baron_app: announcing my loyalty to the Emperor...
#emperor: Sat May 2 21:37:58 2020 - [emperor] vassal baron_app.ini is now loyal....
#prince_app: [pid: 26852|app: 0|req: 2/2].....
我尝试了 procname-prefix
和 vassal_name
之类的方法,但它似乎不起作用 - 可能是因为我不知道把它放在哪里,在 uwsgi.ini
或 vassals*.ini
?
我当前的设置...
...< etc < services.d < uwsgi.ini**
[program:uwsgi]
command=uwsgi --master -- %(ENV_HOME)s/uwsgi/apps-enabled
autostart=true
autorestart=true
stderr_logfile = ~/uwsgi/err.log
stdout_logfile = ~/uwsgi/out.log
stopsignal=INT
vacuum = 1
...< uwsgi < apps-enabled < baron_app.ini**
[uwsgi]
base = /home/kiowa/baron_app/baron_app
chdir = /home/kiowa/baron_app/
static_files = /home/kiowa/baron_app/
http = :8080
master = true
wsgi-file = %(base)/wsgi.py
touch-reload = %(wsgi-file)
static-map = /static=%(static_files)/static_storage/production_static
enable-threads = true
single-interpreter = true
app = wsgi
virtualenv = /home/kiowa/.local/env_baron
plugin = python
uid = kiowa
gid = kiowa
...< uwsgi < apps-enabled < baron_app.ini**
[uwsgi]
base = /home/kiowa/prince_app/baron_app
chdir = /home/kiowa/prince_app/
static_files = /home/kiowa/prince_app/
http = :8000
master = true
wsgi-file = %(base)/wsgi.py
touch-reload = %(wsgi-file)
static-map = /static=%(static_files)/static_storage/production_static
enable-threads = true
single-interpreter = true
app = wsgi
virtualenv = /home/kiowa/.local/prince_app
plugin = python
uid = kiowa
gid = kiowa
好的,我可以通过将其放入我的 vassals.ini
; set app / error Log - check
logger = file:%(var_logs)/vassal_baron/baron_app.log
; disable default req log and set request Log and - check
req-logger = file:%(var_logs)/vassal_baron/baron_request.log
disable-logging = true