nginx按日期每天生成一个日志文件或每个小时生成一个日志文件


 

按日期:

一:

if ($time_iso8601 ~ "(\d{4}-\d{2}-\d{2})") {
set $day $1;
}

access_log logs/host.access_$day.log combined;

结果:host.access_2020-08-27.log

-------------------------------------------------------------------------

二:
if ($time_iso8601 ~ "(\d{4})-(\d{2})-(\d{2})") {
set $time $1$2$3;
}
access_log logs/host.access_$time .log combined;

结果:host.access_20200826.log

两种写法其实是一样的,第一种把日期做成一个参数,第二个是把日期做成三个参数(一个括号一个参数)

combined是按默认日志格式

还可以按指定日志格式:

log_format time_log_format '$remote_addr - $remote_user [$time_local] "$request" - $request_time - $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" - [$upstream_response_time]';

access_log logs/host.access_$time .log time_log_format;

 

按小时生成:

if ($time_iso8601 ~ "(\d{4}-\d{2}-\d{2}T\d{2})") {
set $day $1;
}

access_log  logs/host.access_$day.log  combined;

结果:host.access_2020-08-27T00.log

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM