如何摆脱rails3警告:DEPRECATION警告:RAILS_DEFAULT_LOGGER已弃用

时间:2011-07-22 18:18:33

标签: ruby ruby-on-rails-3

以下是完整警告:

DEPRECATION警告:不推荐使用RAILS_DEFAULT_LOGGER。请使用:: Rails.logger。 (来自/Users/timmartin/src/edcaliber/config/environment.rb:7)

我的树不包含'RAILS_DEFAULT_LOGGER',而环境.rb的第7行只是:

所有MyApplication ::在Application.Initialize!

我怎样摆脱这个警告?我最近从rails2升级

3 个答案:

答案 0 :(得分:0)

这可能来自您正在使用的其中一个插件。四处搜寻,看看你能找到它是哪一个。

答案 1 :(得分:0)

在我的Rails 3应用程序上收到了相同的警告消息,我在其中一个文件中明确使用了RAILS_DEFAULT_LOGGER;用:: Rails.logger替换它会使警告消息消失。

在您应用的其他配置文件中,可能会有一个RAILS_DEFAULT_LOGGER实例。尝试在您的应用中查找该字符串。

从rails app主目录运行以下命令应该会显示它的位置。

grep -r RAILS_DEFAULT_LOGGER *

答案 2 :(得分:0)

如果它不在您的代码中,那么它就在某个宝石中。这是一个搜索你的宝石的bash one-liner:

find `gem environment | grep "INSTALLATION DIR" | cut -d: -f2` | grep rb$ | xargs grep RAILS_DEFAULT_LOGGER

对我而言,webrat,railties和newrelic都使用RAILS_DEFAULT_LOGGER。

如果您想学习如何捕鱼而不仅仅是吃这条鱼,或者当互联网上有人告诉您时,您不只是将脚本粘贴到终端中,这里是如何逐步完成的。踏上自己。第一次运行

gem environment

查看gems的ruby代码的安装位置。对我来说,该目录似乎被列为“INSTALLATION DIRECTORY”,它是/home/lacker/.rvm/gems/ruby-1.8.7-p352。下一步是获取这些宝石中以“rb”结尾的所有文件的列表:

find /home/lacker/.rvm/gems/ruby-1.8.7-p352 | grep rb$

现在我们想要为RAILS_DEFAULT_LOGGER中的每一个进行grep,你可以使用xargs + grep:

find /home/lacker/.rvm/gems/ruby-1.8.7-p352 | grep rb$ | xargs grep RAILS_DEFAULT_LOGGER

如果安装了Ack,也可以使用{{3}}。