レポートがEUC-JPで作成されるのに対して、検索文字列がUTF-8になっているからだ。
awffullはgettextで国際化されていて、gettextは環境変数LANGUAGEを見てそれに合わせてiconvで変換した文字列を出力するようなので、LANGAGEその他諸々をja_JP.UTF-8にしてみたんだけどレポートはEUC-JPで出力されてしまう。
あきらめて検索文字列の方をEUC-JPで出力するように方針転換。
そういえばjapanese/webalizerのころはこんなことはなかった。
調べてみるとjapanese/awffullはnyan氏のパッチを適用したもののよう。
このパッチはa-urasim氏のwebalizer用のパッチを参考に書かれたものだけど、そっちではEUC-JP検索文字列をEUC-JPに統一して出力するようになっている。
よってnyan氏がUTF-8に統一して出力するように書き換えた部分を元に戻してやれば良いと思って、ports中のfiles/awffull-ja.diffを書き換えたらEUC-JPで出力されるようになった。
Emacsのdiffモードが賢い(行の挿入や削除をするとメタ情報も変更してくれる)のに感動。
ただ、あまり良いやり方じゃないと思う。
元はといえばgettextの出力コードが変更できなかったのが問題だし、検索文字列の出力コードも設定ファイルに記述できるようにするべきかと。
]]>AWFFull is a webserver log analysis tool. Mainly used to produce simple reports, it can also be used as the starting point for more detailed Web Analytics. … AWFFull is a fork of the venerable Webalizer log analysis program.
現在メンテされていないWebalizerのバグを取り、拡張したものらしい。設定ファイルもWebalizerと同じように書ける。
試しに使ってみたら、GroupAgentの問題は無くなった。
portsにjapanese/awffullがあったのでそれを導入。
設定ファイルのひな形が見つからなくて困ったけど、どうやら/usr/local/share/example/ja-webalizer/sample.conf が書き換えられていた様子。
ただ、そのままではHTMLHeadを設定しているにもかかわらず文字化けする。
吐き出されたHTMLを見てみると先にcharsetがUTF-8で指定されていた。
ソースをgrepするとoutput.cでfprintfされているのでコメントアウト。
テキストは文字化けしなくなったけどグラフ内の日本語が文字化けしている。
とりあえずは放置。
]]>