如何按日期拆分nginx的error.log?

我想按日期拆分nginx的error.log,但不起作用

这是我的代码:

if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") {
    set $year $1;
    set $month $2;
    set $day $3;
}
access_log logs/access.log.$year$month$day main;
error_log logs/error.log.$year$month$day;

但结果是:

enter image description here

点赞
用户2336650
用户2336650

根据 这个线程,在 error_log 指令中使用变量是不被允许的。

这是故意设计的。变量仅在 HTTP 请求中可用,而 error_log 指令不仅限于 HTTP。

然而,您可以使用 logrotate 或创建一个脚本来为您进行重命名,请查看来自 ServerFault 的以下 相关问题

2019-03-11 07:47:53
用户11672258
用户11672258

将你的代码块添加到 server{} 块中,它就应该可以工作了。

2019-06-19 18:46:15