2011-01-25 11 views
12

Quando facciocome cambiare il logger rotaie di utilizzare standard di fuori dai compiti rake (rails2)

Rails.logger.debug "ciao mondo" dal di dentro i miei compiti rake lo voglio per accedere allo standard fuori.

Come si imposta il logger dei binari su Logger.new (STDOUT) dall'attività rake?

Desidero che la mia app esegua il login al file quando arriva attraverso i controller ecc., Voglio solo che le attività di rake vadano allo std out a causa del modo in cui è stato impostato il monitoraggio.

Stavo pensando che potrei definire un altro ambiente e usare quella configurazione, ma probabilmente esagerare, voglio tutti gli stessi vars di ambiente in ogni ambiente, voglio solo cambiare la posizione della mia destinazione di registro.

Per ora ho un helper di log che utilizza puts, ma voglio approfittare della formattazione dei registri delle rotaie e del buffering.

risposta

6

È possibile ripristinare il registratore di default in questo modo:

 
RAILS_DEFAULT_LOGGER = Logger.new(STDOUT) 

È inoltre possibile impostare il logger per parti specifiche della vostra applicazione (ActiveRecord, ActionController ...) in questo modo:

 
ActiveRecord::Base.logger = Logger.new(STDOUT) 
+0

provato questo e ottenuto: /lib/tasks/fetch_influencers.rake:4: dinamica costante assegnazione RAILS_DEFAULT_LOGGER = Logger.new (STDOUT) (Credo che la vostra soluzione funziona in Rails3, ho bisogno di un rails2 soluzione) – Joelio

+0

Era un avvertimento o un errore? Avrai un avvertimento se lo fai perché stai cambiando una costante, ma dovresti comunque riuscire a farlo. –

+1

lib/tasks/fetch_data.rake: 4: assegnazione costante dinamica RAILS_DEFAULT_LOGGER = Logger.new (STDOUT) – Joelio

9

Ho appena fatto Rails.logger = Logger.new(STDOUT) e che ha funzionato anche (rails3)

0

Con le rotaie 4 userai il gem rails_12factor. Metti questo nel tuo Gemfile e voilà! gioiello 'rails_12factor_'

Problemi correlati