Web サイトを運営している人の多くがそのサイトへのアクセスの状況を知りたいと考えているでしょう。いわゆるアクセス解析というものです。アクセス解析の手段にはさまざまなものがありますが、その1つにアクセスログからアクセス状況を調べるという古典的な方法があります。
Web サーバに Apache を使うという選択をした場合、(デフォルトの設定では)ログとして1アクセスごとに1行のエントリが追記されていきます。特に common もしくは combined と呼ばれるフォーマットが一般的です。
そのログから情報を取り出したいのですが、
という欲求が出てきたため、試しにテキストベースのレポートを出力するスクリプトを Gauche で書いてみました: log-report.scm
これによって、サンプルのアクセスログ access_log(30MB 以上) から簡単なグラフからなるレポート report が作成できます。ログの書式は common, combined いずれでも構いません。
思いつきを検討する前に作ったため、実際の処理速度は芳しくありません:
$ time gosh log-report.scm access_log > report
real 13m13.548s
user 12m52.720s
sys 0m3.580s
このままでは役に立たないので、他のユニークな機能を追加することも含め、しばらく時間をとりたいと考えています。