log-rotate

描述

log-rotate 插件用于定期切分日志目录下的访问日志和错误日志。

你可以自定义日志轮换的频率以及要保留的日志数量。当日志数量超过限制时,旧的日志会被自动删除。

参数

名称类型必选项默认值有效值描述
intervalinteger60 60每间隔多长时间切分一次日志,以秒为单位。
max_keptinteger24 7最多保留多少份历史日志,超过指定数量后,自动删除老文件。
max_sizeinteger-1日志文件超过指定大小时进行切分,单位为 Byte 。如果 max_size 小于 0 或者根据 interval 计算的时间到达时,将不会根据 max_size 切分日志。
enable_compressionbooleanfalse[false, true]当设置为 true 时,启用日志文件压缩。该功能需要在系统中安装 tar

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

  1. ll logs
  1. total 44K
  2. -rw-r--r--. 1 resty resty 0 Mar 20 20:33 2020-03-20_20-33-40_access.log
  3. -rw-r--r--. 1 resty resty 2.8K Mar 20 20:33 2020-03-20_20-33-40_error.log
  4. -rw-r--r--. 1 resty resty 0 Mar 20 20:33 2020-03-20_20-33-50_access.log
  5. -rw-r--r--. 1 resty resty 2.4K Mar 20 20:33 2020-03-20_20-33-50_error.log
  6. -rw-r--r--. 1 resty resty 0 Mar 20 20:33 2020-03-20_20-34-00_access.log
  7. -rw-r--r--. 1 resty resty 2.4K Mar 20 20:34 2020-03-20_20-34-00_error.log
  8. -rw-r--r--. 1 resty resty 0 Mar 20 20:34 2020-03-20_20-34-10_access.log
  9. -rw-r--r--. 1 resty resty 2.4K Mar 20 20:34 2020-03-20_20-34-10_error.log
  10. -rw-r--r--. 1 resty resty 0 Mar 20 20:34 access.log
  11. -rw-r--r--. 1 resty resty 1.5K Mar 20 21:31 error.log

当开启日志文件压缩时,日志文件名称如下所示:

  1. ll logs
  1. total 10.5K
  2. -rw-r--r--. 1 resty resty 1.5K Mar 20 20:33 2020-03-20_20-33-50_access.log.tar.gz
  3. -rw-r--r--. 1 resty resty 1.5K Mar 20 20:33 2020-03-20_20-33-50_error.log.tar.gz
  4. -rw-r--r--. 1 resty resty 1.5K Mar 20 20:33 2020-03-20_20-34-00_access.log.tar.gz
  5. -rw-r--r--. 1 resty resty 1.5K Mar 20 20:34 2020-03-20_20-34-00_error.log.tar.gz
  6. -rw-r--r--. 1 resty resty 1.5K Mar 20 20:34 2020-03-20_20-34-10_access.log.tar.gz
  7. -rw-r--r--. 1 resty resty 1.5K Mar 20 20:34 2020-03-20_20-34-10_error.log.tar.gz
  8. -rw-r--r--. 1 resty resty 0 Mar 20 20:34 access.log
  9. -rw-r--r--. 1 resty resty 1.5K Mar 20 21:31 error.log

启用插件

该插件默认为禁用状态,你可以在 ./conf/config.yaml 中启用 log-rotate 插件,不需要在任何路由或服务中绑定。

“./conf/config.yaml”

  1. plugins:
  2. # the plugins you enabled
  3. - log-rotate
  4. plugin_attr:
  5. log-rotate:
  6. interval: 3600 # rotate interval (unit: second)
  7. max_kept: 168 # max number of log files will be kept
  8. max_size: -1 # max size of log files will be kept
  9. enable_compression: false # enable log file compression(gzip) or not, default false

配置完成,你需要重新加载 APISIX。

禁用插件

当你不再需要该插件时,只需要在 ./conf/config.yaml 中删除或注释该插件即可。

  1. plugins:
  2. # the plugins you enabled
  3. # - log-rotate
  4. plugin_attr: