特定UAの場合ログに書き込みたいくないみたいなケースがあってどうにかならないかみていたらaccess_logはifで状態を取れるらしいことに気づいた。
Syntax: access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]]; access_log off; Default: access_log logs/access.log combined; Context: http, server, location, if in location, limit_except
サンプル通りやるならmapで変数を使うやり方
map $status $loggable { ~^[23] 0; default 1; } access_log /path/to/access.log combined if=$loggable;
ステータスコードが200系 or 300系ならログに書かないやり方。uaも同じように書けば特定uaだけログに出力しないみたいなことが可能