在使用 uwsgi
时,日志管理是一个重要的方面,uwsgi
自带日志切割特性,也可以使用 Linux 的 logrotate
服务来管理 uwsgi 的日志切割。
使用 uwsgi
自身的日志切割特性
你可以在 uwsgi
配置文件中使用 logrotate
选项来启用日志切割。以下是一个配置示例:
[uwsgi]
logto = /var/log/uwsgi/myapp.log
logrotate = /etc/logrotate.d/uwsgi
接着创建一个 logrotate
配置文件 /etc/logrotate.d/uwsgi
,如下:
/var/log/uwsgi/*.log {
daily
missingok
rotate 7
compress
notifempty
create 640 uwsgi adm
sharedscripts
postrotate
systemctl restart uwsgi.service
endscript
}
使用 Linux 的 logrotate 服务
另一种方法是使用 Linux 的 logrotate 服务来管理 uwsgi 的日志切割。创建一个配置文件 uwsgi
在 /etc/logrotate.d/
目录,并添加以下内容:
/var/log/uwsgi/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 640 uwsgi adm
sharedscripts
postrotate
systemctl restart uwsgi.service
endscript
}
配置详情:
daily - 日志将每天轮换一次。
rotate 7 - 保留 7 天的日志。
compress - 旧的日志文件将被压缩。
delaycompress - 延迟压缩,它将不会压缩最新的归档文件。
create 640 uwsgi adm - 用指定的权限和所有者/组创建新的日志文件。
postrotate ... endscript - 日志轮换后要运行的脚本,这里是重启 uwsgi 服务来确保它开始写入新的日志文件。
使用 uwsgi 的 log-maxsize 选项
你还可以使用 log-maxsize
选项来限制日志文件的大小,示例如下:
[uwsgi]
logto = /var/log/uwsgi/myapp.log
log-maxsize = 1000000
在这里,log-maxsize
选项用来指定日志文件的最大大小(以字节为单位),在达到这个大小后,uwsgi
将自动轮换日志文件。
注意
- 路径
/var/log/uwsgi/
和服务名uwsgi.service
是示例,你应该根据你的实际环境进行更改。 - 请确保
uwsgi
进程有权写入指定的日志文件和目录。 - 重启
uwsgi
服务是为了确保它开始写入新的日志文件。在一些情况下,你可能需要发送一个特定的信号而不是完全重启服务来重新打开日志文件。
文章说明
原文地址: uWSGI 日志切割,转载请标明来源。
本文由 Articli 工具自动发布。