Class: LogTransportManager
- Inherits:
-
Object
- Object
- LogTransportManager
- Defined in:
- lib/wingify/packages/logger/core/transport_manager.rb
Instance Method Summary collapse
- #add_transport(transport) ⇒ Object
- #debug(message) ⇒ Object
- #error(message) ⇒ Object
- #info(message) ⇒ Object
-
#initialize(config) ⇒ LogTransportManager
constructor
A new instance of LogTransportManager.
- #log(level, message) ⇒ Object
- #should_log?(transport_level, config_level) ⇒ Boolean
- #trace(message) ⇒ Object
- #warn(message) ⇒ Object
Constructor Details
#initialize(config) ⇒ LogTransportManager
Returns a new instance of LogTransportManager.
19 20 21 22 |
# File 'lib/wingify/packages/logger/core/transport_manager.rb', line 19 def initialize(config) @transports = [] @config = config # This should be the global config passed to LogManager end |
Instance Method Details
#add_transport(transport) ⇒ Object
24 25 26 |
# File 'lib/wingify/packages/logger/core/transport_manager.rb', line 24 def add_transport(transport) @transports.push(transport) end |
#debug(message) ⇒ Object
38 39 40 |
# File 'lib/wingify/packages/logger/core/transport_manager.rb', line 38 def debug() log('DEBUG', ) end |
#error(message) ⇒ Object
50 51 52 |
# File 'lib/wingify/packages/logger/core/transport_manager.rb', line 50 def error() log('ERROR', ) end |
#info(message) ⇒ Object
42 43 44 |
# File 'lib/wingify/packages/logger/core/transport_manager.rb', line 42 def info() log('INFO', ) end |
#log(level, message) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/wingify/packages/logger/core/transport_manager.rb', line 54 def log(level, ) @transports.each do |transport| # Pass the global config (from LogManager) to LogMessageBuilder, not the transport = LogMessageBuilder.new(@config, transport) = .(level, ) if should_log?(level, transport.level) if transport.respond_to?(:log) && transport.method(:log).arity == 2 # Use custom log handler if available with correct arity transport.log(level, ) elsif transport.respond_to?(level.downcase.to_sym) # Use level-specific method if available transport.send(level.downcase.to_sym, ) else # Fallback to console_log transport.console_log(level, ) end end end end |
#should_log?(transport_level, config_level) ⇒ Boolean
28 29 30 31 32 |
# File 'lib/wingify/packages/logger/core/transport_manager.rb', line 28 def should_log?(transport_level, config_level) target_level = LogLevelToNumber.to_number(transport_level) desired_level = LogLevelToNumber.to_number(config_level || @config[:level]) target_level >= desired_level end |
#trace(message) ⇒ Object
34 35 36 |
# File 'lib/wingify/packages/logger/core/transport_manager.rb', line 34 def trace() log('TRACE', ) end |
#warn(message) ⇒ Object
46 47 48 |
# File 'lib/wingify/packages/logger/core/transport_manager.rb', line 46 def warn() log('WARN', ) end |