модуль ActiveSupport::TaggedLogging
Оборачивает любой стандартный объект Logger для предоставления возможностей маркировки.
logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
logger.tagged('BCX') { logger.info 'Stuff' } # Logs "[BCX] Stuff"
logger.tagged('BCX', "Jason") { logger.info 'Stuff' } # Logs "[BCX] [Jason] Stuff"
logger.tagged('BCX') { logger.tagged('Jason') { logger.info 'Stuff' } } # Logs "[BCX] [Jason] Stuff"
Это используется стандартным Rails.logger в соответствии с настройками Railties, чтобы легко добавлять к записям в журнале поддомены, идентификаторы запросов и любые другие данные, помогающие в отладке многопользовательских приложений в рабочей среде.
Публичные методы класса
# File activesupport/lib/active_support/tagged_logging.rb, line 58 def self.new(logger) # Ensure we set a default formatter so we aren't extending nil! logger.formatter ||= ActiveSupport::Logger::SimpleFormatter.new logger.formatter.extend Formatter logger.extend(self) end
Публичные методы экземпляра
# File activesupport/lib/active_support/tagged_logging.rb, line 71 def flush clear_tags! super if defined?(super) end
Вызывает метод суперкласса
# File activesupport/lib/active_support/tagged_logging.rb, line 67
def tagged(*tags)
formatter.tagged(*tags) { yield self }
end
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.