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

 

posted @ 2020-08-27 09:06  winss  阅读(4436)  评论(0)    收藏  举报