log-rotate

描述

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

参数

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

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

  1. $ ll logs
  2. total 44K
  3. -rw-r--r--. 1 resty resty 0 Mar 20 20:32 2020-03-20_20-32-40_access.log
  4. -rw-r--r--. 1 resty resty 2.4K Mar 20 20:32 2020-03-20_20-32-40_error.log
  5. -rw-r--r--. 1 resty resty 0 Mar 20 20:32 2020-03-20_20-32-50_access.log
  6. -rw-r--r--. 1 resty resty 2.8K Mar 20 20:32 2020-03-20_20-32-50_error.log
  7. -rw-r--r--. 1 resty resty 0 Mar 20 20:32 2020-03-20_20-33-00_access.log
  8. -rw-r--r--. 1 resty resty 2.4K Mar 20 20:33 2020-03-20_20-33-00_error.log
  9. -rw-r--r--. 1 resty resty 0 Mar 20 20:33 2020-03-20_20-33-10_access.log
  10. -rw-r--r--. 1 resty resty 2.4K Mar 20 20:33 2020-03-20_20-33-10_error.log
  11. -rw-r--r--. 1 resty resty 0 Mar 20 20:33 2020-03-20_20-33-20_access.log
  12. -rw-r--r--. 1 resty resty 2.4K Mar 20 20:33 2020-03-20_20-33-20_error.log
  13. -rw-r--r--. 1 resty resty 0 Mar 20 20:33 2020-03-20_20-33-30_access.log
  14. -rw-r--r--. 1 resty resty 2.4K Mar 20 20:33 2020-03-20_20-33-30_error.log
  15. -rw-r--r--. 1 resty resty 0 Mar 20 20:33 2020-03-20_20-33-40_access.log
  16. -rw-r--r--. 1 resty resty 2.8K Mar 20 20:33 2020-03-20_20-33-40_error.log
  17. -rw-r--r--. 1 resty resty 0 Mar 20 20:33 2020-03-20_20-33-50_access.log
  18. -rw-r--r--. 1 resty resty 2.4K Mar 20 20:33 2020-03-20_20-33-50_error.log
  19. -rw-r--r--. 1 resty resty 0 Mar 20 20:33 2020-03-20_20-34-00_access.log
  20. -rw-r--r--. 1 resty resty 2.4K Mar 20 20:34 2020-03-20_20-34-00_error.log
  21. -rw-r--r--. 1 resty resty 0 Mar 20 20:34 2020-03-20_20-34-10_access.log
  22. -rw-r--r--. 1 resty resty 2.4K Mar 20 20:34 2020-03-20_20-34-10_error.log
  23. -rw-r--r--. 1 resty resty 0 Mar 20 20:34 access.log
  24. -rw-r--r--. 1 resty resty 1.5K Mar 20 21:31 error.log

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

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

示例

开启插件

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

  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. enable_compression: false # enable log file compression(gzip) or not, default false

禁用插件

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