nginx根据日期记录日志

  • 2019 年 12 月 18 日
  • 筆記

在ngixn.cnf中当前项目server模块中加入以下配置代码:

if ($time_iso8601 ~ "(d{4})-(d{2})-(d{2})") {

set $time $1$2$3;

}

access_log  /usr/local/lnmp/nginx-1.10/logs/${server_name}/${time}.alog combined ;

说明:

if判断中进行正则匹配,匹配完成后根据小括号()将匹配成功的字符设置为$1,$2,$3等等,此次匹配的结果为年月日。

set $time $1$2$3这句户表示在配置文件中设置一个变量time,赋值为$1$2$3即年月日。

access_log  /usr/local/lnmp/nginx-1.10/logs/{$server_name}/${time}.alog combined ;

本句的意思是开启log,并将日志写入/usr/local/lnmp/nginx-1.10/logs/{$server_name}/${time}.alog文件中,$server_name为当前server_name,$time为前文年月日,combined表示使用默认日志格式进行记录。