2011-01-25 12 views
12

当我做如何改变轨道记录器使用标准从rake任务(rails2)

Rails.logger.debug的“Hello World”从内我rake任务,我希望它登录到标准输出了。

如何从我的rake任务中将导轨记录器设置为Logger.new(STDOUT)?

我希望我的应用程序在通过控制器等进入系统时登录到文件,只是希望rake任务因为我的监视设置的方式而变为std out。

我想我可以定义另一个环境并使用该配置,但可能矫枉过正,我想在每个env中都使用相同的环境变量,只是想更改我的日志目标位置。

现在我有一个使用puts的日志助手,但我想利用rails日志和缓冲的格式化。

回答

6

您可以重新设置默认的记录是这样的:

 
RAILS_DEFAULT_LOGGER = Logger.new(STDOUT) 

您还可以设置(ActiveRecord的,ActionController的...)这样的应用程序的特定部分的记录:

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

尝试这样做,得到:/lib/tasks/fetch_influencers.rake:4:动态分配不变 RAILS_DEFAULT_LOGGER = Logger.new(STDOUT) (我认为您的解决方案在Rails3中工作,我需要一个rails2解决方案) – Joelio 2011-01-26 12:29:39

9

我刚才做了Rails.logger = Logger.new(STDOUT),这也工作(rails3)

0

随着轨道4,你将使用宝石rails_12factor。把它放到你的Gemfile中,并且声音! 宝石 'rails_12factor_'