我已经运行了uwsgi服务器。我需要日志和基于文件大小的日志轮换日志轮换。
uwsgi配置:
# file: /etc/init/uwsgi.conf
description "uWSGI starter"
start on (local-filesystems and runlevel [2345])
stop on runlevel [016]
respawn
# home - is the path to our virtualenv directory
# pythonpath - the path to our django application
# module - the wsgi handler python script
exec /home/testuser/virtual_environments/teatapp/bin/uwsgi \
--uid testuser \
--home /home/testuser/virtual_environments/teatapp \
--pythonpath /home/testuser/sci-github/teatapp\
--socket /tmp/uwsgi.sock \
--chmod-socket \
--module wsgi \
--logdate \
--optimize 2 \
--processes 2 \
--master \
--logto /var/log/uwsgi/uwsgi.log
logrotate配置:
# file : /etc/logrotate.conf
"/var/log/uwsgi/*.log" {
copytruncate
daily
maxsize 5k
dateext
rotate 5
compress
missingok
create 777 root root
}
但是日志轮换不起作用请为logrotaion.conf中的任何错误配置提供解决方案。
答案 0 :(得分:1)
根据日志文件大小,uwsgi中有logrotation,例如(uwsgi.ini指令):
log-maxsize = 100000
如果你想使用logrotated,你必须重新启动uwsgi(logrotate指令):
postrotate
stop uwsgi
start uwsgi
endscript
答案 1 :(得分:0)
如果您在uwsgi
文件中使用copytruncate
选项(如Tamar所述),则无需重新启动logrotate
服务。
但问题可能是您忘记在logrotate
中启用cron
。请确保您在/etc/cron.daily
中有一个名为logrotate
的条目。
答案 2 :(得分:-4)
将它放在你的uwsgi配置文件中:
daemonize = / var / log / uwsgi / uwsgi- @(exec:// date + %% Y - %% m - %% d)。log
这将每天创建一个日志,但如果你使用master我们的emperror,请小心不要守护。然后,如果日志很大,您可以使用附加到cron的脚本来控制它以清理文件夹。