如何从初始化程序访问Rails记录器?

问题描述:

遵循my previous question的建议,我将后台进程放入名为scheduler.rb的初始化程序中。但是,我很难让新计划的进程登录到Rails日志。有没有简单的方法让我从初始化程序访问相同的日志,最好通过访问Rails的默认记录器方法(logger.info等)?如何从初始化程序访问Rails记录器?

RAILS_DEFAULT_LOGGER.info "abc" 

RAILS_DEFAULT_LOGGER在Rails 3中已被弃用。以下步骤适用于Rails 3.1。

在调用initialize之前在environment.rb中设置记录器!在您的应用程序上:

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

然后在初始化程序中调用记录器。

Rails.logger.info "Hello, world!" 

Rails的3-
在初始化只需使用Rails.logger

Rails.logger.info "blabla" 

HTH

+2

刚想快速说明很明显,我错过了很长一段时间g时间。要做到这一点,你需要“需要”记录器“ – 2014-07-22 18:27:52

+1

适用于Rails 4以及 – 2016-04-25 12:56:18

较早当场将 config/application.rb

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

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

导致development.log停止为我工作。 – 2013-06-17 01:53:13

+0

你使用的是什么版本的导轨? – 2013-07-03 19:33:33