Class: GoodData::GdLogger

Inherits:
Object show all
Includes:
ContextManager, Rest::Aggregator
Defined in:
lib/gooddata/core/gd_logger.rb

Overview

This class delegates messages to multiple loggers By usage of [ContextManager] and [Rest::Aggregator] it stores information about context of execution

Instance Attribute Summary collapse

Attributes included from Rest::Aggregator

#store

Instance Method Summary collapse

Methods included from Rest::Aggregator

#clear_store, #initialize_store, #update_store

Methods included from ContextManager

#context, #end_action, #initialize_context, #start_action, #time_from_action_start

Methods included from Mixin::PropertyAccessor

#property_accessor, #property_reader, #property_writer

Constructor Details

#initializeGdLogger

Returns a new instance of GdLogger.



27
28
29
30
31
# File 'lib/gooddata/core/gd_logger.rb', line 27

def initialize
  @loggers = {}
  initialize_context
  initialize_store
end

Instance Attribute Details

#loggersObject

Returns the value of attribute loggers.



22
23
24
# File 'lib/gooddata/core/gd_logger.rb', line 22

def loggers
  @loggers
end

Instance Method Details

#add(severity, message, progname, &block) ⇒ Object

Pass message to multiple loggers. By parameters some loggers might be filtered out and the message might be modified.

Parameters:

  • severity,

    severity of record

  • message,

    message to be logged

  • progname,

    progname to be logged



69
70
71
72
73
# File 'lib/gooddata/core/gd_logger.rb', line 69

def add(severity, message, progname, &block)
  loggers.each do |_, logger|
    logger.add(severity, message, progname, &block)
  end
end

#level(level, logger_name) ⇒ Object

Set logger level for specified logger

Parameters:

  • level,

    severity level

  • logger_name, (Symbol)

    logger which severity level should be changed



79
80
81
# File 'lib/gooddata/core/gd_logger.rb', line 79

def level(level, logger_name)
  loggers[logger_name].level = level
end

#level=(level) ⇒ Object

Set logger level for all loggers

Parameters:

  • level,

    severity level



86
87
88
89
90
# File 'lib/gooddata/core/gd_logger.rb', line 86

def level=(level)
  loggers.values.each do |logger|
    logger.level = level
  end
end

#logging_off(logger_id) ⇒ Object



37
38
39
# File 'lib/gooddata/core/gd_logger.rb', line 37

def logging_off(logger_id)
  loggers[logger_id] = NilLogger.new
end

#logging_on(logger_id, logger) ⇒ Object



33
34
35
# File 'lib/gooddata/core/gd_logger.rb', line 33

def logging_on(logger_id, logger)
  loggers[logger_id] = logger
end

#logging_on?(logger_id) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/gooddata/core/gd_logger.rb', line 41

def logging_on?(logger_id)
  loggers.key?(logger_id) && !loggers[logger_id].is_a?(NilLogger)
end

#test_severity(severity) ⇒ Object



58
59
60
61
62
# File 'lib/gooddata/core/gd_logger.rb', line 58

def test_severity(severity)
  (loggers.values.map do |logger|
    logger.send severity.to_s + "?"
  end).any?
end