在environment.rb中定义记录器不起作用

时间:2012-04-06 12:30:06

标签: ruby-on-rails logging undefined

我正在尝试制作自定义记录器。我在别处读到我可以在environment.rb中定义我的记录器并在其他文件中使用它。

我在environment.rb:

# Load the rails application
require File.expand_path('../application', __FILE__)

my_logger = Logger.new("#{Rails.root}/log/my.log")
my_logger.formatter = Logger::Formatter.new


# Initialize the rails application
MyApp::Application.initialize!

我从例如控制器调用记录器:

    my_logger.info "got here"

但是,我得到错误:

  

未定义的局部变量或方法`my_logger'

为什么会发生这种情况的任何线索?谢谢!

2 个答案:

答案 0 :(得分:2)

将文件打开到写入/追加模式:

尝试:

logfile = File.open('#{Rails.root}/log/my.log', 'a')  
my_logger = Logger.new(logfile)
my_logger.info 'Hello World!'

答案 1 :(得分:2)

您可以维护自己的日志:

my_logger = ActiveSupport::BufferedLogger.new("#{Rails.root}/log/my.log")