備忘録です.
http://toshitanian.hatenablog.com/entry/2013/10/25/023838
nginxのerror_logはformat指定できない.
nginxとかsupervisorとかDBのログをfluentdで一括管理したいなぁとおもったので,とりあえず 参考 にしたがって,nginxのログをltsv形式にしてみようとしたわけです.
環境は
- ubuntu server 12.04 LTS
- nginx 1.4.3
怒られる
nginx.confのログの部分をこんな感じにしてみました.
log_format ltsv "time:$time_local" "\thost:$remote_addr" "\tforwardedfor:$http_x_forwarded_for" "\treq:$request" "\tstatus:$status" "\tsize:$body_bytes_sent" "\treferer:$http_referer" "\tua:$http_user_agent" "\treqtime:$request_time" "\tvhost:$host"; access_log /var/log/nginx/access.log ltsv; error_log /var/log/nginx/error.log ltsv;
nginx再起動!...動かない...
$ sudo nginx -t
してみると,
nginx: [emerg] invalid log level "ltsv" in /etc/nginx/nginx.conf:45 nginx: configuration file /etc/nginx/nginx.conf test failed
らしい....(´?ω?`)
Nginx-HttpLogModuleを見る限りででは,公式でサポートされてるっぽいよなぁ.
ログレベルを指定してみる
Is it possible to specify custom error log format in nginx? を見てみる.
ログレベルってのは[ debug | info | notice | warn | error | crit ] のどれからしい.
access_log /var/log/nginx/access.log info;
にして,テストしてみた.
nginx: [emerg] unknown log format "info" in /etc/nginx/nginx.conf:44
ぐぬぬ...
つまり,log_formatを指定したら,level入れろよ!って怒られて.level入れたらlog_format入れろよ!って怒られる.
わかったこと
色々やっててテストがパスした.
わかったことは...
- access_logはlog_formatを指定する.
- error_logはlog_levelを指定する.
nginx: [emerg] invalid log level "ltsv" in /etc/nginx/nginx.conf:45
エラーログにlog_formatは指定できない.
nginx: [emerg] unknown log format "info" in /etc/nginx/nginx.conf:44
アクセスログにlog_levelは指定できない.
ということみたいです.
参考ページとか,ちゃんとみると,access_logしか指定してませんね.
ちゃんと読むようにしないとなぁ.
nginxのエラーログはどういう風に管理しましょう.
时间: 2024-10-09 19:56:46