nginx日志配置按天存储

已邀请:

1、在HTTP段增加正则匹配,获取当前年月日

 map $time_iso8601 $logdate {
'~(?\d{4}-\d{2}-\d{2})' $ymd;
default 'nodate';
}


2、配置日志增加变量


如 access_log /data/logs/nginx_access_${logdate}.log main;


3、验证配置有效

nginx -t


4、验证参数无误后,重载生效

nginx -s reload

【需要了解】

$time_iso8601 是内嵌变量用来获取时间,获取的时间格式如下:2020-08-21T16:01:02+02:00。于是我们使用正则表达式来获取所需时间的详细数据。

【具体步骤】

1、按天生成日志

server
{
# 其它配置
if($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})"){
set $year $1;
set $month $2;
set $day $3;
}
access_log /var/logs/7l7y/access_$year-$month-$day.log main;
error_log /var/logs/7l7y.error
# 其它配置
}

2、按时分秒生成日志

server
{
# 其它配置
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;
}
access_log /var/logs/7l7y/access_$year-$month-$day-hour-minutes-seconds.log main;
error_log /var/logs/7l7y.error
# 其它配置
}

要回复问题请先登录注册