Apacheのログフォーマット記法

2018-12-23
プログラミング

ログフォーマットに使用できる文字列

意味
%a アクセス元のIPアドレス
%A サーバーのIPアドレス
%b ヘッダを除く送信バイト数
1バイトとも送られなかった場合は-になる
%B ヘッダを除く送信バイト数
%f リクエストされたファイル名
%h リモートホスト名
%H リクエストされたプロトコル名
%l identdからのリモートログ名
%m リクエストのメソッド名
%q リクエストに含まれるクエリ一文字列
%r リクエストの最初の行(Method,URL, Protocol)
%s リダイレクトされる場合は、最初のステータス
%>s ステータスコード
%>S ステータ最後のレスポンスのステータス
%t 日時
%T 処理時間
%u リモートユーザー名
%U クエリストリングがないURL
%v リクエストへのバーチャルホスト名
%V UseCanonicalNameによるサーバ名
%X 接続ステータス
%{foo}C クッキーCの値
%{foo}e 環境変数fooの内容
%{foo}i HTTPリクエストヘッダfooの内容
%{foo}o HTTPレスポンスヘッダfooの内容
%{foo}m モジュールから渡されるメモfooの内容
%{foo}t フォーマットされたfooの日時
\” ダブルクォーテーション

# Combined記法LogFormat 
"%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined

ちなみにNginxだと

# Combined記法
log_format combined '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';