сделал так:
map $arg_id $log_path {
default /opt/log/nginx/access.log;
true /opt/log/nginx/custom/access.log;
}
location ... {
access_log $log_path;
...
}
Но что-то вроде не работает.
Очень сильно зависит от точных условий задачи. Средствами самого nginx, скорее всего, задача не решаема. Если я правильно понимаю проблему, то можно вообще валить всё в rsyslog через 514 порт, а там уже раздёргивать по наличию каких угодно подстрок (м.б. даже в виде JSON)
адекватно - нет, но так работает: location /test { if ($arg_id) { access_log "/var/log/nginx/custom-access.log"; } access_log "/var/log/nginx/defaul-access.log"; return 200; }результат: $ cat custom-access.log 127.0.0.1 - - [14/Dec/2017:23:24:38 +0300] "GET /test?id=true HTTP/1.1" 200 0 "-" "Wget/1.14 (linux-gnu)" $ cat defaul-access.log 127.0.0.1 - - [14/Dec/2017:23:24:43 +0300] "GET /test?tid=true HTTP/1.1" 200 0 "-" "Wget/1.14 (linux-gnu)"
Обсуждают сегодня