2011-01-25 8 views
12

Cuando hagocómo cambiar el registrador de rieles para usar la salida estándar de tareas rake (rails2)

Rails.logger.debug "hola mundo" desde dentro de mis tareas rastrillo quiero que ingrese a la salida estándar.

¿Cómo configuro el registrador de rieles en Logger.new (STDOUT) desde dentro de mi tarea de rake?

Quiero que mi aplicación se registre en el archivo cuando viene a través de controladores, etc., solo quiero que las tareas de rake se ajusten debido a la forma en que se configura mi monitorización.

Estaba pensando que podría definir otro entorno y usar esa configuración, pero probablemente exagerada, quiero los mismos vars de entorno en cada entorno, solo quiero cambiar la ubicación de mi destino de registro.

Por ahora tengo un asistente de registro que usa puts, pero quiero aprovechar el formato de los registros de los rieles y el almacenamiento en búfer.

Respuesta

6

Puede restablecer el registrador predeterminado de esta manera:

 
RAILS_DEFAULT_LOGGER = Logger.new(STDOUT) 

También puede configurar el registrador para partes específicas de su aplicación (ActiveRecord, ActionController ...) así:

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

probado este y consiguió: /lib/tasks/fetch_influencers.rake:4: asignación dinámica constante RAILS_DEFAULT_LOGGER = Logger.new (STDOUT) (creo que su solución funciona en rails3, necesito un rails2 solución) – Joelio

+0

¿Fue eso una advertencia o un error? Recibirás una advertencia si haces esto porque estás cambiando una constante, pero aún así deberías poder hacerlo. –

+1

lib/tasks/fetch_data.rake: 4: asignación de constante dinámica RAILS_DEFAULT_LOGGER = Logger.new (STDOUT) – Joelio

9

Acabo de hacer Rails.logger = Logger.new(STDOUT) y que también funcionó (rails3)

0

Con rieles 4 utilizará el rails gem_12factor. Coloque esto en su Gemfile y voilà! joya 'rails_12factor_'

Cuestiones relacionadas