如何告诉ActiveRecord不要记录任何控制字符

是否有任何方法可以告诉活动记录在记录日志时不记录ansi颜色代码?

例如。 我不希望这在我的日志中。

[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) 

事实上,我并不是在寻找一种能够清理混乱的解决方案。

回答Rails 3:

 config.colorize_logging = false 

请参阅http://guides.rubyonrails.org/3_0_release_notes.html

不推荐使用ActiveRecord :: Base.colorize_logging和config.active_record.colorize_logging,转而使用Rails :: LogSubscriber.colorize_logging或config.colorize_logging

将其添加到适当的环境文件中(在我的示例中为development.rb)

 config.active_record.colorize_logging = false 

我在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