2010-09-23 2 views
2

В моих ява дней я использовал, чтобы настроить регистратор так, что различные классы имели различные уровни т.е.Различные уровни ЗК для различных классов

Person.logger.level = :debug 
Address.logger.level = :error 

Я не смог найти способ сделать это с рубином регистратор. Возможно, мне нужно создать отдельный логгер для каждого класса?

ответ

2

Возможно, вам повезло с легким подходом, известным как маркировка журналов. Негибкость стандартных пакетов ведения журналов привела меня к разработке и выпуску Tagalog, который представляет собой систему протоколов с открытым исходным кодом с одним файлом. Есть версии библиотеки в PHP, Python и Ruby, доступен на GitHub:

https://github.com/dorkitude/tagalog

или, в частности, для версии Ruby:

https://github.com/dorkitude/tagalog.rb

Простой способ использовать его в ваш случай:

class Person 
    def self.log(input): 
    return Tagalog::log(input, [:person, :debug]) 

# ... (rest of class) 

end 

Преимущества тегов по уровням - это возможность включать и выключать теги как вы сочтете нужным, и они могут быть особенностью, или они могут быть только такими уровнями, как вы привыкли.

+0

Мне очень нравится подход пометки, посмотрим. – opsb

+0

@opsb - любая удача с пометкой? Это сэкономит мне что-то вроде 10% моего времени разработки :) –

+0

Да, у меня была игра, работает очень хорошо. Я думаю, что это будет хорошо работать как декоратор над стандартным регистратором. Таким образом, вы можете подключиться к любой существующей инфраструктуре регистрации, но с дополнительными функциями тегов. – opsb

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