nginx按日期生成log文件
时间: 2023-07-06 10:26:35 浏览: 54
要在NGINX中按日期生成log文件,可以使用nginx内置的变量$date\_local,以及NGINX的日志分割功能。具体步骤如下:
1.在NGINX配置文件中定义log格式,包括日期变量$date\_local:
```
log_format mylog '$remote_addr - $remote_user [$date_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
```
2.将log文件按日期分割,可以使用NGINX的logrotate功能。在logrotate配置文件中定义对应的log文件,并设置按照日期分割:
```
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 nginx adm
sharedscripts
postrotate
/usr/sbin/nginx -s reload
endscript
}
```
在上面的配置中,设置了每天按照日期分割log文件,保留14天的log文件,同时使用gzip压缩。其中,$postrotate$中的命令会在log文件分割后执行,可以重新加载NGINX配置文件,以便新的log文件生效。
3.使用上面定义的log格式来记录访问log,同时将log文件输出到指定路径下,例如:
```
access_log /var/log/nginx/access.log mylog;
```
这样,NGINX就会按照日期生成log文件,并将访问log记录到对应的log文件中。注意,按照日期分割log文件的功能需要依赖于logrotate工具,需要安装并配置好logrotate才能生效。