2012-04-06 2 views
0

Я пытаюсь создать собственный регистратор. Я читал в другом месте, что могу определить свой регистратор в файле environment.rb и использовать его в других файлах.Определение logger в 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

Открыть файл в записи/режим добавляющим:

Try:

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

+1

Вы можете настроить его в любой файл инициализации. – Vik

2

Вы можете сохранить собственный журнал:

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

Где я могу определить этот регистратор? В environment.rb? – Karan

+1

Определите любой файл инициализации или создайте новый logger.rb и поместите каталог inot/config. –

Смежные вопросы