BLOGTIMES
2016/03/11

PHP から Apache のログファイルにログを書く

  php 
このエントリーをはてなブックマークに追加

PHP でログ出力を行うためには例えば log4php などのライブラリを使うという手もありますが、mod_php を使っている場合には Apache の CustomLog を使って Apache にログ出力をしてもらうという手が使えることが分かったのでメモ。

まず、httpd.conf や <VirtualHost> 定義の中に以下のような CustomLog の定義を作成しておきます。

LogFormat "%h %l %u %t \"%r\" %>s %b %{foo}e" foo_log CustomLog logs/foo_log foo_log env=foo

今回は出力に foo という環境変数を使うので LogFormat に追加されているのは %{foo}e だけですが、これらの定義は必要に応じて追加してください。

あとは PHP 側から apache_setenv() を使って該当の環境変数をセットしてやれば OK。

apache_setenv("foo", "[INFO] hoge");

上記の場合はこんな感じでログ出力がされます。

192.168.0.1 - - [11/Mar/2016:12:50:36 +0900] "GET /example/app/ HTTP/1.1" 200 - [INFO] hoge

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/8338
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン