2014-09-19 46 views
0

我有一個記錄器一個簡單的Ruby腳本,我設置了一個格式化爲記錄器提供彩色輸出:爲什麼Rails會改變記錄器的顏色轉義序列?

require 'colorize' 
require 'mono_logger' 

logger = MonoLogger.new(target_file) 
logger.formatter = proc do |severity, datetime, progname, msg| 
    meta = "#{severity.to_s[0].red} #{datetime.strftime('%y-%m-%d %H:%M:%S.%6N').white}" 
    "#{meta} #{msg}\n" 
end 

那偉大工程,所有logger.info通話將被保存到正確的顏色轉義序列和用tail查看文件時顯示紅色/白色。

在這一Ruby腳本我才能訪問這些應用程序模型等這樣的裝載軌道環境:

require File.expand_path('../../../../config/environment', __FILE__) 

該行之後每個日誌調用不正確保存顏色轉義序列。似乎rails會做一些替換或類似的東西。

require前:

\033[0;31;49mI\033[0m [0;37;49m14-09-19 15:38:36.472544\033[0m Starting boot process 
\033[0;31;49mI\033[0m [0;37;49m14-09-19 15:38:36.472788\033[0m Loading rails environment 

require後:

\033[1;31mI\033[0m [1;37m14-09-19 15:38:39.949944\033[0m Using config config/config.rb 
\033[1;31mD\033[0m [1;37m14-09-19 15:38:47.105813\033[0m Setting up clockwork 
\033[1;31mI\033[0m [1;37m14-09-19 15:38:47.805399\033[0m Setting up EventMachine 

任何想法如何解決呢?

回答

0

好像Rails的有它自己的.green.blue,...爲字符串的方法。如果您使用的.colorize(:green)代替.green一切就像一個魅力。

相關問題