Skip to main content
Version: 2.10

log-rotate

本插件可自动完成 logs 目录下的 access 和 error 日志的定期切分。 通过配置参数可以设置每间隔多久切分一次日志,以及最近保留多少份日志(超过指定数量后,自动删除老文件)。

参数#

名称类型必选项默认值有效值描述
intervalinteger必须60 * 60每间隔多长时间切分一次日志,秒为单位
max_keptinteger必须24 * 7最多保留多少份历史日志,超过指定数量后,自动删除老文件
enable_compressionboolean可选false是否启用日志文件压缩(gzip)。该功能需要安装 tar

开启该插件后,就会按照参数自动切分日志文件了。比如下面的例子是根据 interval: 10max_kept: 10 得到的样本。

$ ll logstotal 44K-rw-r--r--. 1 resty resty    0 Mar 20 20:32 2020-03-20_20-32-40_access.log-rw-r--r--. 1 resty resty 2.4K Mar 20 20:32 2020-03-20_20-32-40_error.log-rw-r--r--. 1 resty resty    0 Mar 20 20:32 2020-03-20_20-32-50_access.log-rw-r--r--. 1 resty resty 2.8K Mar 20 20:32 2020-03-20_20-32-50_error.log-rw-r--r--. 1 resty resty    0 Mar 20 20:32 2020-03-20_20-33-00_access.log-rw-r--r--. 1 resty resty 2.4K Mar 20 20:33 2020-03-20_20-33-00_error.log-rw-r--r--. 1 resty resty    0 Mar 20 20:33 2020-03-20_20-33-10_access.log-rw-r--r--. 1 resty resty 2.4K Mar 20 20:33 2020-03-20_20-33-10_error.log-rw-r--r--. 1 resty resty    0 Mar 20 20:33 2020-03-20_20-33-20_access.log-rw-r--r--. 1 resty resty 2.4K Mar 20 20:33 2020-03-20_20-33-20_error.log-rw-r--r--. 1 resty resty    0 Mar 20 20:33 2020-03-20_20-33-30_access.log-rw-r--r--. 1 resty resty 2.4K Mar 20 20:33 2020-03-20_20-33-30_error.log-rw-r--r--. 1 resty resty    0 Mar 20 20:33 2020-03-20_20-33-40_access.log-rw-r--r--. 1 resty resty 2.8K Mar 20 20:33 2020-03-20_20-33-40_error.log-rw-r--r--. 1 resty resty    0 Mar 20 20:33 2020-03-20_20-33-50_access.log-rw-r--r--. 1 resty resty 2.4K Mar 20 20:33 2020-03-20_20-33-50_error.log-rw-r--r--. 1 resty resty    0 Mar 20 20:33 2020-03-20_20-34-00_access.log-rw-r--r--. 1 resty resty 2.4K Mar 20 20:34 2020-03-20_20-34-00_error.log-rw-r--r--. 1 resty resty    0 Mar 20 20:34 2020-03-20_20-34-10_access.log-rw-r--r--. 1 resty resty 2.4K Mar 20 20:34 2020-03-20_20-34-10_error.log-rw-r--r--. 1 resty resty    0 Mar 20 20:34 access.log-rw-r--r--. 1 resty resty 1.5K Mar 20 21:31 error.log

当开启日志文件压缩时,日志文件将如下所示。

$ ll logstotal 10.5K-rw-r--r--. 1 resty resty  1.5K Mar 20 20:33 2020-03-20_20-33-50_access.log.tar.gz-rw-r--r--. 1 resty resty  1.5K Mar 20 20:33 2020-03-20_20-33-50_error.log.tar.gz-rw-r--r--. 1 resty resty  1.5K Mar 20 20:33 2020-03-20_20-34-00_access.log.tar.gz-rw-r--r--. 1 resty resty  1.5K Mar 20 20:34 2020-03-20_20-34-00_error.log.tar.gz-rw-r--r--. 1 resty resty  1.5K Mar 20 20:34 2020-03-20_20-34-10_access.log.tar.gz-rw-r--r--. 1 resty resty  1.5K Mar 20 20:34 2020-03-20_20-34-10_error.log.tar.gz-rw-r--r--. 1 resty resty    0 Mar 20 20:34 access.log-rw-r--r--. 1 resty resty 1.5K Mar 20 21:31 error.log

示例#

开启插件#

conf/config.yaml 中启用插件 log-rotate 即可,不需要在任何 route 或 service 中绑定。

plugins:    # the plugins you enabled    - log-rotate
plugin_attr:    log-rotate:        interval: 3600    # rotate interval (unit: second)        max_kept: 168     # max number of log files will be kept        enable_compression: false    # enable log file compression(gzip) or not, default false

禁用插件#

conf/config.yaml 中删除插件 log-rotate 即可。