2010-01-22 10 views
13

Siguiendo el consejo de my previous question, coloqué mi proceso en segundo plano en un inicializador llamado scheduler.rb. Sin embargo, me está costando conseguir que los procesos recién programados se registren en los registros de Rails. ¿Hay alguna manera sencilla de acceder a los mismos registros desde el inicializador, preferiblemente accediendo a los métodos de registrador predeterminados de Rails (logger.info, etc.)?¿Cómo puedo acceder al registrador Rails desde un inicializador?

Respuesta

9
RAILS_DEFAULT_LOGGER.info "abc" 
14

RAILS_DEFAULT_LOGGER está desfasada y en Rails 3. Los siguientes pasos funcionan para mí en Rails 3.1.

¡Configure su registrador en environment.rb antes de llamar a initialize! en su aplicación:

Rails.logger = Logger.new(STDOUT) 
MyServer::Application.initialize! 

Luego llame al registrador en su inicializador.

Rails.logger.info "Hello, world!" 
22

rieles 3-
simplemente utilizar Rails.logger en su inicializador

Rails.logger.info "blabla" 

HTH

+2

Sólo una pequeña nota acerca algo obvio que me perdí durante bastante tiempo g tiempo Para que esto funcione, necesita "requerir 'logger'" –

+1

Works with Rails 4 así como –

-2

Un punto anterior será config/application.rb

require File.expand_path('../boot', __FILE__) 
require 'rails/all' 

#add this line below: 
Rails.logger = Logger.new(STDOUT) 
+0

Causado development.log para dejar de funcionar para mí. –

+0

¿Qué versión de rieles estás usando? –

Cuestiones relacionadas