2018年以降の記事はGitHub Pagesに移行しました

Rails3のログ出力にANSIカラーコードを使用しない設定

あらすじ

WindowsRails(Redmine)を実行した時のログが超見づらいのはなんで?

こんな風になる。helloと表示されるはずの場合。

 [31mhello[0m

何とかしたい。

環境

参考サイト

ANSIカラーというコードを使用されている
この現象自体を止めるには
Windows(コマンドプロンプト)でもANSIカラー(未実施)

ANSIカラー

  • ターミナルにおいて、文字に色を付けるためのエスケープシーケンスみたい
  • ソースコード上には print "\e[31mhello\e[0m" こう記載されている
    • \e[xxm がコード
      • 31 は文字色を赤に
      • 0 は終われ
    • コードによって文字色、背景色、装飾をいじることができる

で、Rail3はこれに対応しているので、UnixとかMacとかだとログが色分けされ美しく表示されるようになっている。(あとCygwinでもいけるっぽい)

そういえば、さくらVPS上(CentOS)でRailsを実行している時は奇麗だったんだよな思い出してみれば。

無効化するには

Windowsでも色つけができる(参考サイト参照)ようだが、めんどいので無効化する方向で。

REDMINE/config/application.rb に以下の記述を追加。

   config.colorize_logging = false

特定環境のみとかの設定もできるが、とりあえずオールオフで。