ログ出力の悩み
まず、色。
Macのときは全然問題ないんだけどWindowsでANSIエスケープシーケンスを手軽に使う方法がわからない。
command.comだとANSI.SYSを組み込めばいちおう(カクカクするけど)カラーになることはわかったが、rubyを起動したとたん元に戻ってしまう。16bitアプリじゃないとだめなのかな。わからん。
ひょっとしてCygwinのbashなら・・・とおもってインストールしてみたが、よく考えたらCygwin版のRubyは入れてないしドはまりの予感がしたから撤退。
色をあきらめることにすれば、config/environment.rbの隅っこに以下のように書くとよいことがわかった。
ActiveRecord::Base.colorize_logging = false
次に文字コード、コマンドプロンプトはCP932(SJIS系)なので、UTF8でRailsのコードを書いてるとログが当然UTF8だから文字化けする。どうするか。
- Rails全部をSJISで書く。conf/environment.rb に $KCODE = 's' とか。
- ログを書くときだけ NKF.nkf('-s', ...) する。
- コマンドプロンプトのコードページをUTF8にする。
RailsはUTF8で統一したほうが絶対いいだろうから1つめは却下。
2つめは、できなくはなさそうだけどどこから探せばよいかよく分からないし、そもそもUNIX系ならtail -f log/*.log | nkf -s で一発だろとか、いやいやそれならUTF8のままでいいじゃないとか考えるととっても不毛な気がし始めてやはり追跡中止。
3つめ、これはCHCPというコマンドでUTFのコードページ65001を指定すれば良さそうと言うところまでわかったのはよかったが、サーバのログが途中から表示されなくなってしまうことが判明。
ということで、標準のコマンドプロンプトだと限界かも。みんなどうしてるんだろう。
コマンドプロンプトの代替品があればいいんだよねえ。作ってもそれほど難しくないだろうし、サンプルプログラムとかありそう。ありそうなんだけど、こういうありがちなものは探すのが難しいんだよなあ。
これ、よさそうだけど、どうかなあ。というところで時間切れ。