apache

ApacheのLogFormatの使い方は?LogFormatを使ってログの書式を変更してみよう

こんにちは、フルスタックエンジニアのryuです。

今回の記事では、ApacheのLogFormatの使い方について解説します。LogFormatを使って、ログの書式を変更してみましょう。設定方法は、Apacheの設定ファイルを開き、LogFormatを変更するだけです。ログをカスタマイズして、Webサイトの運用をやり易くしましょう。

サーバー構築を実践で身につけるInfraAcademy

※本ページには、プロモーション・アフィリエイトリンクが含まれています

ApacheのLogFormatの使い方は?

ApacheのLogFormatはどうやって使うの?

今回の記事では、ApacheのLogFormatの使い方について解説します。LogFormatを使用することで、Apacheのアクセスログの表示形式を変更することができます。

LogFormatの使い方について詳しく解説します!

Apacheの設定ファイルでLogFormatを定義

では早速LogFormatを使ってみましょう。LogFormatはデフォルトで既に設定されています。設定されている場所は、Apacheの設定ファイルです。viコマンドを使用して、ファイルを開いてみましょう。

vi /etc/apache/apache2.conf
もしくは
vi /etc/http/httpd.conf

ファイルの下部にLogFormatの設定がされています。

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

これらが、どのような意味があるのか、さらに詳しく解説します。

LogFormatの書式

LogFormatの書式は、以下のようになります。

LogFormat [フォーマット] [書式名]

フォーマットは、Logに出力する情報を定義します。書式名は、LogFormatの名前です。Logファイルの場所を指定するときに使用する”CustomLog”に指定します。

LogFormatの文字列一覧

LogFormatでは、ログのフォーマットを指定します。フォーマットの文字列の意味は以下の通りです。

%aリモートIPアドレス
%AローカルIPアドレス
%bクライアントに送信されたHTTPヘッダ以外のバイト数
%fファイル名
%hリモートホスト
%Hリクエストプロトコル
%Iリモートログ名
%mリモートメソッド
%rリクエストの最初の行
%tサーバーがリウエストの処理を終えた時間
%Tリクエスト処理にかかった時間
%uリクエストをしたユーザー名
%Uリクエストされたユーザー名
%>sサーバーがクライアントに返すステータスコード
%{Referer}iリクエスト内のRefererヘッダの内容
%{User-agent}iリクエスト内のUser-agentヘッダの内容

LogFormatでApacheのアクセスログをカスタマイズしてみよう

では、最後にLogFormatでApacheのアクセスログをカスタマイズしてみましょう。

Apacheの設定ファイルの編集

まず、設定ファイルを編集します。先ほど同様にviコマンドを使用して編集します。

vi /etc/apache/apache2.conf
もしくは
vi /etc/http/httpd.conf

ファイルに以下のように定義します。

LogFormat "%h %l %u %t  %U" testlog
CustomLog ${APACHE_LOG_DIR}/test/access.log testlog

LogFormatは5つの情報を出力するようにしています。testlogという書式名を定義して、CustomLogでtestlogのファイルを設定しています。CustomLogについてはこちらの記事で詳しく解説しています。

Apacheのログの場所は?ログの場所を設定する方法について詳しく解説

これで設定は完了です。

Apacheを再起動する

設定ファイルの編集が完了したら、Apacheの再起動をして、設定を反映させます。その前に、ログを出力させるディレクトリの作成を行います。

mkdir -m 777 /var/log/apache/test

Apacheがログファイルの作成や書き込みができるように、権限をフルアクセスで付与しています。

最後にApacheを再起動して完了です。

service apache2 restart

これでログのカスタマイズが完了です!

ApacheのLogFormatの使い方まとめ

今回の記事では、ApacheのLogFormatの使い方について解説しました。まとめると以下のようになります。

  • Apacheの設定ファイルでLogFormatの設定
  • LogFormat [フォーマット] [書式名]で定義
  • CustomLogで出力させる

LogFormatを使用して、Apacheのログをカスタマイズしてみましょう!

このようなインフラエンジニアに必要な知識を当ブログでは、紹介しているので興味のある方は是非ご覧ください。

さらにlinuxについて勉強したい方はこちらの参考書がオススメです。

ABOUT ME
ryu@InfraAcademyというインフラ学習サービス運営
大手企業→上場ベンチャー→スタートアップでエンジニアをしていました。 インフラエンジニア歴10年以上。 Linuxやネットワークの学習ができるサービスInfraAcademyを運営中。
RELATED POST