LoginSignup
19
16

More than 5 years have passed since last update.

ApacheアクセスログにPHPから任意の値を出力

Posted at

2通りご紹介。
例として、"mykey"というキーの値を設定したいとする。

①apache_noteを使う

httpd.conf

例えば以下のようになっていたら

LogFormat "%h %l %u %t \"%r\" %>s %b" combined
CustomLog /var/log/httpd/foobar-access.log combined

こうする("%{mykey}n"を追加)。

LogFormat "%h %l %u %t \"%r\" %>s %b %{mykey}n" combined

%{mykey}nのnの意味は以下参照。

%{Foobar}n 他のモジュールからのメモ Foobar の内容
http://httpd.apache.org/docs/2.2/ja/mod/mod_log_config.html

でもどっちかというとLTSVにしてるときの方がラベル張れて使いやすい。
LTSVならこうする。

LogFormat "host:%h\t .... \tmy_key:%{mykey}n" combined

php

以下実行

apache_note("mykey", "hoge");

apache_note — Apacheリクエスト記号(note)を取得/設定する
http://php.net/manual/ja/function.apache-note.php

②HTTPヘッダを使う

①の方法でもいいんだけど、リバースプロキシのログでも値が見たいときとかに不便。
なのでHTTPヘッダを使う。

httpd.conf

LTSVだとこう。

LogFormat "host:%h\t .... \tmy_key:%{Mykey}o" combined

%{Mykey}oのoの意味は以下参照。

%{Foobar}o 応答の Foobar: ヘッダの内容
http://httpd.apache.org/docs/2.2/ja/mod/mod_log_config.html

php

以下実行

header('Mykey: hoge'); 

header — 生の HTTP ヘッダを送信する
http://php.net/manual/ja/function.header.php

19
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
16