nginx日志按天保存-原生方法-不用重启
2017-01-19 15:33
204 查看
一、原生方法
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重新打开这个文件
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重新打开这个文件
相关文章推荐
- 重新编译java类,而不用重启服务器的方法(weblogic 8.1)
- [JAVA]修改Java文件不用重启Tomcat服务的方法
- 关闭SELinux不用重启的方法
- nginx 平滑重启与升级的实现方法
- Centos上Apache重启,mysql重启,nginx重启方法
- 把异常的堆栈跟踪输出保存到日志文件的方法
- Linux修改时区不用重启的方法
- 开启mysql慢查询日志,不重启数据库的方法
- 通过分析nginx的日志来过滤出访问过于频繁的IP地址,然后添加到nginx的blockip.conf,并重启nginx
- 保存SecureCRT日志的设置方法
- [JAVA]修改Java文件不用重启Tomcat服务的方法
- Linux修改时区不用重启的方法
- 关于使用keepalived后nginx日志中的健康日志清除方法 推荐
- Nginx 记录日志的几种方法
- hadoop 集群大版本切换之保存数据和日志的方法
- weblogic 8.1下重新编译java类但不用重启服务器的方法
- .Net下几种日志管理方法(C# 将Diagnostics.Trace 调试输出 保存到txt)
- Bitmap序列化(将BitmapData保存为原生Binary/ByteArray),AS3保存图像的方法
- 修改类不用重启Tomcat加载整个项目的实现方法
- Centos上Apache重启,mysql重启,nginx重启方法