【Nginx】自定义日志时期格式
nginx日志默认提供了$time_local和$time_iso8601两种时间格式,输出格式类似为"01/Jul/2020:10:56:37" 或者 "2020-07-01T11:16:35+08:00"。但是为了便于日常分析,通常需要将日志中的日期格式显示为yyyy-MM-dd HH:mm:ss,比如2023-04-06 11:21:00。为了实现这个需求就需要使用自定义变量对Nginx的日志格式进行调整
1、在server中定义好变量
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; } .... }
2、日志格式中引用变量
# 官方默认日志格式 log_format main '$server_name $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"'; # 输出结果 127.0.0.1 - - [01/Jul/2020:03:25:17 +0800] "GET /resource/js/bootstrap.min.js HTTP/1.1" 200 36816 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" "192.168.0.1" # 修改日志格式 log_format main '$server_name $remote_addr - $remote_user $year-$month-$day $hour:$minutes:$seconds "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"'; #输出结果 182.150.63.178 - hz22047713 2023-04-06 16:46:23 "GET /assets/index-94a36651.css HTTP/1.1" 304 0 "http://43.207.177.27/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.62" "-"
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论