2013-05-06 2 views
2

Я новичок в Ruby/Rails, но не новичок в разработке.Как включить ведение журнала в Rails?

У меня есть следующий код, определенный в iniatializer.rb:

def logger 
    if defined?(RAILS_DEFAULT_LOGGER) 
    RAILS_DEFAULT_LOGGER 
    else 
    nil 
    end 
end 

Я хочу, чтобы включить ведение журнала сообщений в моем приложении Руби/Rails.

И в какой-то Руби/Rails кода, у меня есть

logger.info "Email attachment: #{size} #{filename}" 

\ рубин \ Bin> рубин --version дает: рубин 1.8.7 (2010-01-10) 249 номера патчей [i386-mingw32 ]

Как изменить определение регистратора, чтобы logger.info попал в файл, который я могу открыть и прочитать? Пожалуйста, укажите необходимые требования/включить.

спасибо.

ответ

3

если ваши рельсы < 3.X затем использовать ниже код

def logger 
    if defined?(RAILS_DEFAULT_LOGGER) 
    Logger.new('log/my_log.log') 
    else 
    nil 
    end 
end 

если ваши рельсы> 3.X затем заменить RAILS_DEFAULT_LOGGER с Rails.logger в коде выше

def logger 
    if defined?(Rails.logger) 
    Logger.new('log/my_log.log') 
    else 
    nil 
    end 
end 
+0

Вопрос очень конкретный. Как изменить определение регистратора, а не писать новый код ... Спасибо. – chuacw

+1

В вашем защитнике логгера просто запустите RAILS_DEFAULT_LOGGER с помощью «Logger.new ('log/my_log.log») внутри вашего блока if. Dont изменить condition.so ваш код 'если он определен? (RAILS_DEFAULT_LOGGER) Logger.new ('Журнал/my_log.log') еще ноль end' –

+0

Суббарао, Фредерик сказал RAILS_DEFAULT_LOGGER был удален, так будет ваш код Помогите??? – chuacw

1

RAILS_DEFAULT_LOGGER был удален давно. Новое имя: Rails.logger. Это будет создано для вас при загрузке рельсов.

+1

И нет ничего, что я могу сделайте с вашим ответом. Как проверить, что Rails.logger регистрируется в файле журнала? Если он не включен, как мне включить его? Как его установить? Говорить мне, что оно удалено или устарело, мне нечего делать. Мне нужно включить ведение журнала. Просьба предоставить полезную информацию. – chuacw

+0

Мое мнение заключалось в том, что вам ничего не нужно делать - просто используйте Rails.logger (по умолчанию для log/development.log) –

+0

Фредерик, поэтому в коде выше, поскольку RAILS_DEFAULT_LOGGER удален, делает это или нет, средний логгер определяется как nil? Итак, разве это не значит, что мне все еще нужно что-то делать? – chuacw

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