申し訳有りません、先程の投稿自体が勘違いでした。
アクセス時間の記録にズレはありません。
順番が入れ替わっていたり、Refererが存在しない場合に記録されないことで見間違えていたようです。
>Perlスクリプトくらいでそういうログにすることはできそうな気もしますが。
>PerlのCGIということではなくて、Perl本来の(単独で動く)Perlスクリプトでやればいいのでは、という意味です。
ログファイルをPerlで編集するということでしょうか?
各ログファイルで日時の書式が違いますし、
ログに記録されるタイミングが異なるようでアクセス時間の記録にズレがあります。
(refererは転送開始時、uaとhttpd.logは転送終了時、uaとhttpd.logで1秒程度のズレが生じることも)
転送に時間を要しているときに他のアクセスがあれば順序も逆転してしまうと思います。
日本語ファイル名がhttpd.logではエスケープされたままの状態で、ua/refererではデコードされて記録されています。
日時の書式やファイル名はどうにでもなりますが、時間がバラバラでは共通のプロセスIDでも記載されない限りまとめるのは難しいと思うのですが…
私はまだ何か勘違いしてしまっているでしょうか?
mfs さん、
PerlのCGIということではなくて、Perl本来の(単独で動く)Perlスクリプトでやればいいのでは、という意味です。
>Perlスクリプトくらいでそういうログにすることはできそうな気もしますが。
動作が重くなるのでCGI/SSIはあまり挟みたくないのです。
それに、HTML以外のバイナリファイルではSSIが書けません。
ログを取ってから該当のファイルにリダイレクトするCGIを書いて常にそのCGIを経由させればいいのかもしれませんが、
少々煩雑になってしまいます。
mfs さん、
そうですねえ、オプションで考えます。
Perlスクリプトくらいでそういうログにすることはできそうな気もしますが。
こんにちは
現在HTTPdのログは httpd.log と ua.log と referer.log とに分散されて記録されますが、
ua.logとreferer.logを出力せずに httpd.log に ua と referer を記録するオプションが
欲しいです。
ログ解析ツールを使うような大規模サーバでもないので目視で確認しやすいようにしたいので。
Apacheでいうところのcombined形式です
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent