log-rotate

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

参数

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

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

  1. $ 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

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

  1. $ 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 中绑定。

  1. plugins: # the plugins you enabled - log-rotate
  2. 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 即可。