2009-08-17 73 views
6

有什麼辦法可以告訴活動記錄不記錄ansi顏色代碼時,它的日誌記錄的東西?如何告訴ActiveRecord不要記錄任何控制字符

例如,我不想在我的日誌中。

[4;36;1mSQL (0.1ms)[0m [0;1mSELECT count(*) AS count_all FROM `users` WHERE (`user`.id = 133) [0m 

相反,我想這一點:

SQL (0.1ms) SELECT count(*) AS count_all FROM `users` WHERE (`user`.id = 133) 

我不是在尋找涉及事後清理殘局的解決方案。

回答

8

此爲Rails 3添加到您的適當的環境文件(在我的情況development.rb)

config.active_record.colorize_logging = false 
+0

此答案是有效的軌<3 – bjelli 2013-01-09 14:30:58

4

我在我的jRuby腳本中使用了這個方法。 禁用着色的部分是

ActiveSupport::LogSubscriber.colorize_logging = false 

get_jar_path的是,在情況下返回正確的路徑的另一種方法的腳本是在JAR

def activate_logger scriptname 
    # delete logs after a month 
    $log = Logger.new("#{get_jar_path}/logs/#{scriptname}_#{Time.now.strftime("%Y%m%d")}.txt", 'monthly') 
    # $log = Logger.new($stdout) 
    ActiveRecord::Base.logger = $log 
    ActiveRecord::Base.logger.level = Logger.const_get($debuglevel) 
    ActiveSupport::LogSubscriber.colorize_logging = false 
    $errors, $verwerkt = 0, 0 
    $log.info "start #{__FILE__}" 
end 
相關問題