nginx日志按天保存-原生方法-不用重启

一、原生方法

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';


log_format  main  '$remote_addr - $remote_user [$ time_iso8601] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';


将原来的time_local修改为time_iso8601,该格式日期为“2017-01-19T09:10:52+08:00”,也可以其他格式,看个人习惯




注意层次关系,这段脚本一定要加到server配置内部,且if要在access_log前面,否则set的变量将无法引用


server{
...
if ($time_iso8601 ~ '(\d{4}-\d{2}-\d{2})') {
                set $tttt $1;
        }


        access_log  logs/access-$tttt.log  main;
...
}




按yyyy-mm-dd格式截取字符串,写入指定日志文件中


执行 nginx -s reload 后则配置生效



二、命令支持,手动处理

首先mv access.log 想要的名字

然后nginx -s reopen

则再次创建access.log

这个方法不会造成日志丢失,虽然改名了,但进程打开的文件指针其实没变,reopen操作之前这段时间的日志还会继续写入改名后的文件里

reopen只是通知nginx重新打开这个文件

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值