UWSGI logrotation

时间:2015-07-16 06:27:08

标签: uwsgi logrotate

我已经运行了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中的任何错误配置提供解决方案。

3 个答案:

答案 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的脚本来控制它以清理文件夹。