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
%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