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

Tags: [ Ruby ] [ Rails ] [ Redmine ] Published: 2013/08/20

あらすじ

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

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

    
       [31mhello[0m
    
  

何とかしたい。

環境

  • Windows 7
  • Rails 3.2

参考サイト

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
  

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


Author: kk_Ataka / Powered by Jekyll on GitHub Pages