nginxのerror_logはformat指定できない.

備忘録です.

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"
                        "	host:$remote_addr"
                        "	forwardedfor:$http_x_forwarded_for"
                        "	req:$request"
                        "	status:$status"
                        "	size:$body_bytes_sent"
                        "	referer:$http_referer"
                        "	ua:$http_user_agent"
                        "	reqtime:$request_time"
                        "	vhost:$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のエラーログはどういう風に管理しましょう.

原文地址:https://www.cnblogs.com/shuman/p/4551447.html