uWSGI 日志切割

2023年 9月 22日 46.1k 0

在使用 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 工具自动发布。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论