Apacheのログの出力設定

Apacheのログの設定は
/etc/httpd/conf/httpd.conf
を編集して行います。

access_log

デフォルトでは下記のように記載されていると思います。
LogFormatで書式を設定し、CustomLogで出力先を設定します。
LogFormatは”~出力内容~” 名前
CustomLogは出力先、使用するLogFormatの名前
を指定します。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common 
LogFormat "%{Referer}i -> %U" referer  ←クライアントのブラウザやOS の情報を取得
LogFormat "%{User-agent}i" agent        ←どのURLから来たかを取得するリファラーを指定する場合には、%{Referer}i 

CustomLog logs/access_log combined



LogFormatはデフォルトで4つ用意されています。
combinedがcommon、referer、agentを全てを表示する設定。
commonが一般的な設定。refererが一般的なWebサーバーとしての最小。agentがブラウザ情報の出力例です。

LogFormatの変数

LogFormatに様々な変数を設定して、出力内容をカスタマイズできます。

 %a リモートIPアドレス
 %A ローカルIPアドレス
 %B HTTPヘッダを除いた転送バイト数
 %b HTTPヘッダを除いた転送バイト数。
 %f リクエストされた仮想ディレクトリ+ファイル名 (例:/var/www/html/dir/test.php)
 %h リクエストしたリモートホスト名 (例:HTTP/1.1)
 %H リクエストされたプロトコル
 %l identによるリモート・ユーザ名
 %m リクエストメソッド (例:POST)
 %t リクエストを受けた時刻
 %r HTTPリクエストヘッダー (例:POST :/var/www/html/dir/test.php HTTP/1.1 )
 %s サーバーがリクエストに対して返したステータスコード (例:200)
 %U リクエストされたURL (例:/dir/test.php)
 %u 認証に使用されたリモートユーザー名 (べーシック認証のユーザー名)
 %v リクエストを処理するサーバー名 (例:localhost.localdomain)
 %V UseCanonicalNameディレクティブの設定に応じたサーバー名
 %{ヘッダーの名称}i 



%{ヘッダーの名称}iに%{Authorization}iと指定すれば、「Basic ベーシック認証のID:passのbase64の値」が表示されます。

除外ログ

SetEnvIfで設定して、customLogの最後にenv=!nologをつけて除外します。
除外するのは、特定のIPからであったり、URIに含まれる文字列をしていしたりします。

SetEnvIf Remote_Addr 192.168.1. no_log ←192.168.1.xのアドレスを除外
SetEnvIf Request_URI test no_log ←URIにtestを含む場合は除外

CustomLog logs/error_log api_error_log env=!no_log

error_log

エラーログは出力するレベルと場所を指定します。

#debug, info, notice, warn, error, crit ,alert, emerg.
LogLevel warn
ErrorLog logs/error_log
タイトルとURLをコピーしました