2012-04-06 21 views
0

我想製作一個自定義記錄器。我在其他地方看過,我可以在environment.rb中定義我的記錄器,並在其他文件中使用它。在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" 

然而,我獲得錯誤:

Undefined local variable or method `my_logger' for

任何線索,爲什麼會發生這種情況?謝謝!

回答

2

打開文件爲寫入/附加模式:

嘗試:

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

我認爲這是一個事實,即變量my_logger未找到(請注意,我在environment.rb中定義它並將其用於控制​​器文件中,例如users_controller.rb) – Karan 2012-04-06 12:47:47

+1

您可以將其配置爲任何初始化文件。 – Vik 2012-04-06 12:49:19

2

您可以維護自己的日誌:

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

我在哪裏定義這個記錄器?在environment.rb中? – Karan 2012-04-06 12:46:33

+1

定義到任何initilizer文件或創建一個新的logger.rb並放入inot/config目錄。 – 2012-04-06 12:56:27