- - PR -
Apacheのアクセスログ編集
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-11-04 14:54
こんにちは。
Apacheのアクセスログの "GET /somewhere/index.html HTTP/1.1" 200 6566 "http://www.somedomain/somewhere/" LogFormatで言うところの \"%r\" の部分ですが、 ディレクトリ構成、URLを変えることなく、 "GET /hoge/somewhere/index.html HTTP/1.1" 200 6566 "http://www.somedomain/somewhere/" と決まった文字列を付記したいのですが、可能でしょうか? やり方があれば教えてください。 よろしくお願いします。 | ||||
|
投稿日時: 2005-11-05 08:54
gawkで実現できます。
| ||||
|
投稿日時: 2005-11-05 10:30
おはようございます。
Apache側で実現するなら、LogFormatにそのままその決まった文字列を書けば良いと思います。
もっとも、ログ解析等の後処理の中で、置換や挿入を行っても良いと思いますが。 追記: 余談ながら、自分でログ解析をする ( 市販の解析ソフト等は使わない ) なら、\t でタブ区切り形式にしてしまえば、後で処理が大変簡単に済みます。 ※ タブ文字交じりのリクエスト等を故意に送られると困るかもしれませんが…。 [ メッセージ編集済み 編集者: angel 編集日時 2005-11-05 10:35 ] | ||||
|
投稿日時: 2005-11-05 12:37
こんにちは、ご回答ありがとうございます。
LogFormat の %r で、"GET /somewhere/index.html 〜"という 文字列なので、その途中に文字列を挿入するのは難しいかなと 考えております。 やはり、ログ収集後にawkなどで編集しないとできないですか。 | ||||
|
投稿日時: 2005-11-05 13:52
失礼しました。
「リクエスト中のURIの先頭に文字列付加」なのですね。 それは確かに難しいでしょうね。 …まぁ、全うなリクエストであれば、代替はできると思いますが…。 %r ではなく、次のようなフォーマットで。 %m %U%q %H なので、URIの先頭に“/hoge”を付けたければ、 %m /hoge%U%q %H となるでしょうか。 ただし、イレギュラーなリクエストには対応できませんし、ここまでやるものかどうかは分かりません。 ※リクエストの証拠保全という意味合いなら %r は他には替えられませんし、アクセス解析用に URI の履歴を残したいだけなら、%U 等を使った方が勝る、と思います。 以上、ご参考まで。 [ メッセージ編集済み 編集者: angel 編集日時 2005-11-05 13:58 ] | ||||
|
投稿日時: 2005-11-05 15:18
angelさん、ありがとうございます!
たいへん参考になりました。 例えば、 %r:「GET /somewhere/index.html?name=value HTTP/1.1」(リクエスト情報) に対して、 %m:「GET」(リクエストメソッド) %U:「/somewhere/index.html」(リクエストパス) %q:「?name=value」(クエリ文字列) %H:「HTTP/1.1」(リクエストプロトコル) ですね。 これで、ちょっと様子を見てみます。 ありがとうございました。 |
1