2009-08-17 15 views
6

Esiste un modo per indicare al record attivo di non registrare i codici colore ansi quando i relativi elementi di registrazione?Come dire a ActiveRecord di non registrare alcun controllo char

Es. Non voglio questo nei miei registri.

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

Invece voglio che questo:

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

io non sono alla ricerca di una soluzione che coinvolge ripulire il pasticcio dopo il fatto.

risposta

9

risposta per Rails 3:

config.colorize_logging = false 

Vedi http://guides.rubyonrails.org/3_0_release_notes.html

ActiveRecord :: Base .colorize_logging e config.active_record.colorize_logging sono deprecati a favore di Rails :: LogSubscriber.colorize_logging o config.colorize_logging

8

Aggiungi questo al vostro file di ambiente appropriato (nel mio caso development.rb)

config.active_record.colorize_logging = false 
+0

questa risposta è valida per le rotaie <3 – bjelli

4

Io uso questo metodo nei miei script JRuby. La parte che disabilita la colorazione è

ActiveSupport::LogSubscriber.colorize_logging = false 

get_jar_path è un altro metodo che restituisce il percorso corretto nel caso in cui lo script è in un barattolo

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 
Problemi correlati