nginx自定义$time_local格式为yyyyMMdd HHmmss
时间: 2024-02-28 08:53:43 浏览: 26
可以使用 Nginx 的内置变量 $msec 和 $time_iso8601,然后通过自定义格式化字符串实现。
下面是一个示例配置:
```nginx
log_format mylog '$remote_addr - $remote_user [$time_custom] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
map $time_iso8601 $time_custom {
default '';
'~(\d{4})-(\d{2})-(\d{2})' '$1$2$3';
'~(\d{2}):(\d{2}):(\d{2})' ' $1$2$3';
}
```
在这个配置中,我们定义了一个名为 mylog 的日志格式,其中 $time_custom 是我们自定义的时间格式变量,通过对 $time_iso8601 变量进行替换,实现了自定义格式的时间输出。在 map 块中,我们对 $time_iso8601 进行了两次正则表达式匹配,然后通过替换字符串的方式生成了 $time_custom。
使用这个自定义日志格式,可以将日志输出到指定的文件或者标准输出中:
```nginx
access_log /var/log/nginx/access.log mylog;
```
这样就可以按照我们自定义的时间格式 "yyyyMMdd HHmmss" 记录 Nginx 日志了。