19
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?