如何"log-maxsize" uWSGI vassal 记录器?
How to "log-maxsize" the uWSGI vassal logger?
我开始 uWSGI
通过 supervisord
在皇帝模式下部署多个 Django 应用程序在不久的将来。到目前为止,我只部署了一个应用程序用于测试目的。
我想把皇帝日志和我的封臣分开。到目前为止,记录器工作。除了我不能将 log-maxsize
应用到我的 vassals logger
- 这也适用于我的 vassals req-logger
.
[uwsgi]
[program:uwsgi]
command=uwsgi
--master
--emperor %(ENV_HOME)s/etc/uwsgi/vassals
--logto %(ENV_HOME)s/logs/uwsgi/emperor/emperor.log
--log-maxsize 20
--enable-threads
--log-master
<...autostart etc...>
[garden_app] - 附庸
<...>
; ---------
; # Logger #
; ---------
; diable default req log and set request Log
req-logger = file:%(var_logs)/vassal_garden/garden_request.log
disable-logging = true
log-4xx = true
log-5xx = true
log-maxsize = 20
; set app / error Log
logger = file:%(var_logs)/vassal_garden/garden_app.log
log-maxsize = 20
<...>
如您所见,我将 log-maxsize
设置得非常低以立即看到效果。
首先 - 所有日志都是分开工作的。
但是,虽然我的 emperor
在达到 log-maxsize
后创建了新文件 (emperor.log.122568
),但我的 Vassal 文件仍在 log-maxsize
以上增长,或者换句话说,他们没有创建任何东西garden_app.log.56513
.
所以我的问题是: 如何为我的 vassal 记录器设置 log-maxsize
? log-maxsize
仅适用于 logto
?
我也试过 logto
或 logto2
我的封臣,但后来我的皇帝说 "unloyal bad behaving vassal" 或 "Permission denied"。
经过长时间的研究,我的解决方案。现在我得到单独的日志并轮换。
- 将选项从
logger
更改为 logto
。 logger
将执行日志作业,但无论出于何种原因,它都不会轮换。也不要使用 file:
.
- 确保
supervisorctl reread
和 supervisorctl update
在您的 uwsgi.ini
更改后
uwsgi.ini
[program:uwsgi]
command=uwsgi
--master
--emperor %(ENV_HOME)s/etc/uwsgi/vassals
--logto %(ENV_HOME)s/logs/uwsgi/emperor/emperor.log
--log-maxsize 350000
--enable-threads
<...autostart etc...>
[garden_app] - 附庸
<...>
; ---------
; # Logger #
; ---------
; default req logger and set request Log and - currently disabled
req-logger = file:%(var_logs)/vassal_garden/garden_request.log
disable-logging = true
log-4xx = true
log-5xx = true
log-maxsize = 350000
; set app / error Log - check
logto = %(var_logs)/vassal_garden/garden_app.log
log-maxsize = 350000
log-backupname = %(var_logs)/vassal_garden/garden_app.old.log
<...>
我开始 uWSGI
通过 supervisord
在皇帝模式下部署多个 Django 应用程序在不久的将来。到目前为止,我只部署了一个应用程序用于测试目的。
我想把皇帝日志和我的封臣分开。到目前为止,记录器工作。除了我不能将 log-maxsize
应用到我的 vassals logger
- 这也适用于我的 vassals req-logger
.
[uwsgi]
[program:uwsgi]
command=uwsgi
--master
--emperor %(ENV_HOME)s/etc/uwsgi/vassals
--logto %(ENV_HOME)s/logs/uwsgi/emperor/emperor.log
--log-maxsize 20
--enable-threads
--log-master
<...autostart etc...>
[garden_app] - 附庸
<...>
; ---------
; # Logger #
; ---------
; diable default req log and set request Log
req-logger = file:%(var_logs)/vassal_garden/garden_request.log
disable-logging = true
log-4xx = true
log-5xx = true
log-maxsize = 20
; set app / error Log
logger = file:%(var_logs)/vassal_garden/garden_app.log
log-maxsize = 20
<...>
如您所见,我将 log-maxsize
设置得非常低以立即看到效果。
首先 - 所有日志都是分开工作的。
但是,虽然我的 emperor
在达到 log-maxsize
后创建了新文件 (emperor.log.122568
),但我的 Vassal 文件仍在 log-maxsize
以上增长,或者换句话说,他们没有创建任何东西garden_app.log.56513
.
所以我的问题是: 如何为我的 vassal 记录器设置 log-maxsize
? log-maxsize
仅适用于 logto
?
我也试过 logto
或 logto2
我的封臣,但后来我的皇帝说 "unloyal bad behaving vassal" 或 "Permission denied"。
经过长时间的研究,我的解决方案。现在我得到单独的日志并轮换。
- 将选项从
logger
更改为logto
。logger
将执行日志作业,但无论出于何种原因,它都不会轮换。也不要使用file:
. - 确保
supervisorctl reread
和supervisorctl update
在您的uwsgi.ini
更改后
uwsgi.ini
[program:uwsgi]
command=uwsgi
--master
--emperor %(ENV_HOME)s/etc/uwsgi/vassals
--logto %(ENV_HOME)s/logs/uwsgi/emperor/emperor.log
--log-maxsize 350000
--enable-threads
<...autostart etc...>
[garden_app] - 附庸
<...>
; ---------
; # Logger #
; ---------
; default req logger and set request Log and - currently disabled
req-logger = file:%(var_logs)/vassal_garden/garden_request.log
disable-logging = true
log-4xx = true
log-5xx = true
log-maxsize = 350000
; set app / error Log - check
logto = %(var_logs)/vassal_garden/garden_app.log
log-maxsize = 350000
log-backupname = %(var_logs)/vassal_garden/garden_app.old.log
<...>