Различные уровни логгера для разных классов - PullRequest
2 голосов
/ 23 сентября 2010

В дни Java я настраивал регистратор так, чтобы разные классы имели разные уровни, т.е.

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

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

1 Ответ

2 голосов
/ 13 января 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...