如何设置 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.iniprince_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-prefixvassal_name 之类的方法,但它似乎不起作用 - 可能是因为我不知道把它放在哪里,在 uwsgi.inivassals*.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