nginx自定义$time_local格式为yyyy-MM-dd HH:mm:ss
时间: 2024-02-28 09:54:06 浏览: 269
你可以使用如下的格式指令来自定义 `$time_local` 的格式为 `yyyy-MM-dd HH:mm:ss`:
```
log_format custom_format '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
access_log /var/log/nginx/access.log custom_format;
```
在上面的配置中,`$time_local` 被包含在 `custom_format` 中,并在 `access_log` 中使用。这将使 `$time_local` 的格式为 `yyyy-MM-dd HH:mm:ss`,而其他变量的格式将按照默认值输出。
相关问题
nginx自定义$time_local格式
在 Nginx 中,$time_local 变量默认的格式为 "[dd/Mon/yyyy:HH:mm:ss +zzzz]",如果你想要自定义 $time_local 的格式,可以使用 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';
}
```
在这个配置中,我们定义了一个名为 mylog 的日志格式,其中 $time_custom 是我们自定义的时间格式变量,通过对 $time_iso8601 变量进行替换,实现了自定义格式的时间输出。在 map 块中,我们对 $time_iso8601 进行了两次正则表达式匹配,然后通过替换字符串的方式生成了 $time_custom。
使用这个自定义日志格式,可以将日志输出到指定的文件或者标准输出中:
```nginx
access_log /var/log/nginx/access.log mylog;
```
这样就可以按照我们自定义的时间格式记录 Nginx 日志了。
阅读全文