LoginSignup
2
0

More than 5 years have passed since last update.

apacheのアクセスログの形式を変えようとしてつまづいた

Posted at

とあるPHPのプロジェクトにて、apacheのアクセスログをカスタマイズして吐き出したかったが、つまづいたのでその時の対処法のメモ

失敗例

Apacheのログをカスタマイズ/重いログだけを抽出を参考に設定

設定

hoge.php
...
apache_note('hoge', $hoge);
...
conf.d/hoge.conf
...
LogFormat "%a %m %U %{hoge}n %t" combined
CustomLog logs/hoge_access.log combined
...

アクセスログ

/var/log/httpd/hoge_access.log
192.168.33.1 - - [20/Mar/2018:00:00:00 +0900] "GET /index.html HTTP/1.1" 200 114 "-" 
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"

設定前のアクセスログの出力形式と全く同じ。
つまり、うまくいってない

httpd.confに設定をしてみる

フォーマットがあっているか不安なので、httpd.confに同じLogFormatを設定

設定

conf/httpd.conf
...
LogFormat "%a %m %U %{hoge}n %t" combined
CustomLog logs/hoge_access.log combined
...

### アクセスログ
/var/log/httpd/hoge_access.log
192.168.33.1 GET / foo [20/Mar/2018:00:00:00 +0900]

これなら出力できてる

調べたところ、
apacheアクセスログの書式の設定を理解するによると先程の設定のcombinedの部分はnicknameと呼ばれるもので、つまりLogFormatの定義名かな?
このnicknameがかぶっていたために最初の設定では、ログ出力がうまく変えられていなかったようだ。

成功例

nicknameをcombinedや同じくhttpd.confで定義されているcommon以外のものに変えてみる

設定

conf.d/hoge.conf
...
LogFormat "%a %m %U %{hoge}n %t" hoge
CustomLog logs/hoge_access.log hoge
...

アクセスログ

/var/log/httpd/hoge_access.log
192.168.33.1 GET / foo [20/Mar/2018:00:00:00 +0900]

今度は成功

結論

アクセスログをカスタマイズしたい時は、combinedcommon以外のnicknameをつけること

2
0
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
2
0