NGINX自带日志切割功能方便实用,可以按天、小时月等生成日志文件。
NGINX日志内容格式定义
log_format nginx_log_json '{"nginx_time":"$time_iso8601","remote_addr":"$remote_addr","http_host":"$http_host","request_completion":"$request_completion","connection":"$connection","connection_requests":"$connection_requests","msec":"$msec","pipe":"$pipe","request":"$request","uri":"$uri","status":"$status","body_bytes_sent":"$body_bytes_sent","bytes_sent":"$bytes_sent","gzip_ratio":"$gzip_ratio","http_referer":"$http_referer","http_user_agent":"$http_user_agent","http_x_forwarded_for":"$http_x_forwarded_for","upstream_addr":"$upstream_addr","upstream_response_time":"$upstream_response_time","upstream_status":"$upstream_status","request_time":"$request_time"}';
NGINX日志按天切割
server {
listen 80;
server_name localhost;
#日志切割格式:
if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})")
{
set $year1 $1;
set $month1 $2;
set $day1 $3;
set $hour1 $4;
set $minutes1 $5;
set $seconds1 $6;
}
location ~ / {
access_log logs/test-$year1-$month1-$day1.log nginx_log_json;
}
日志天切割
test-$year1-$month1-$day1.log
日志小时切割
test-$year1-$month1-$day1-$hour1.log
#根据自己需求而定切割方式。
最终日志切割效果图: