直接在nginx配置文件中,配置日志循环,而不需使用logrotate或配置cron任务。需要使用到$time_iso8601 内嵌变量来获取时间。$time_iso8601格式如下:2015-08-07T18:12:02+02:00。然后使用正则表达式来获取所需时间的数 据。

按天分割日志

使用下面的代码块

if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") {
set $year $1;
set $month $2;
set $day $3;
} access_log /data/logs/nginx/upchina.com-$year-$month-$day-access.log;

也可以使用Perl语法来捕获,如下:

if ($time_iso8601 ~ "^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})") {}

access_log /data/logs/nginx/upchina.com-$year-$month-$day-access.log;

按时、分、秒分割

if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})")
{
set $year $1;
set $month $2;
set $day $3;
set $hour $4;
set $minutes $5;
set $seconds $6;
}

非常方便的进行日志分割。建议按小时分割日志,方便分析查询日志。


使用logrotate+crontab进行日志切割

nginx日志默认情况下统统写入到一个文件中,文件会变的越来越大,非常不方便查看分析。以日期来作为日志的切割是比较好的,通常我们是以每日来做统计的。下面来说说nginx日志切割。

1. 定义日志轮滚策略

# vim nginx-log-rotate

/data/weblogs/*.log {
nocompress
daily
copytruncate
create
notifempty
rotate 7
olddir /data/weblogs/old_log
missingok
dateext
postrotate
/bin/kill -HUP `cat /var/run/nginx.pid 2> /dev/null` 2> /dev/null || true
endscript
}

[warning]/data/weblogs/*.log使用通配符时,/data/weblogs/目录下的所有匹配到的日志文件都将切割。如果要切割特定日志文件,就指定到该文件。[/warning]

2. 设置计划任务

59 23 * * * root ( /usr/sbin/logrotate -f /PATH/TO/nginx-log-rotate)

这样每天23点59分钟执行日志切割。

最新文章

  1. ES5基础之正则表达式01:初次见面
  2. public private, protect. 以及继承。 草稿。
  3. mysql 锁优化
  4. 跨域请求 &amp; jsonp
  5. inputs
  6. Android开发代码规范
  7. css开发经验&amp;错误习惯
  8. php:根据中文裁减字符串函数方法
  9. 获取调用者Class和method、反射获取get方法、获取注解信息
  10. MySQL XtraBackup备份脚本
  11. YUM 安装及清理
  12. MYBATIS 简单整理与回顾
  13. JavaEE 藏经阁
  14. Windows 2008 asp.net 配置
  15. 【XSY2332】Randomized Binary Search Tree 概率DP FFT
  16. FileUpload1.PostedFile.FileName 获取的文件名
  17. Maven中classifier
  18. redis哨兵模式,数据尽量少的丢失
  19. directive例子1
  20. 【C++程序员学 python】python 的文件类型

热门文章

  1. c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出
  2. 【Linux】使用update-alternatives命令进行版本的切换
  3. python:mysql+pycharm+Django环境搭建
  4. 迭代器学习之一:使用IEnumerable和IEnumerator接口
  5. AE开发中栅格图层实现分级渲染
  6. C# 自定义Section
  7. ORACLE 触发器
  8. JSP动作元素之include
  9. 一段freemarker高级分页效果的代码
  10. CSS样式自动换行(强制换行)与强制不换行