Class: LogStashLogger::MultiLogger

Inherits:
Logger
  • Object
show all
Defined in:
lib/logstash-logger/multi_logger.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(loggers) ⇒ MultiLogger

Synopsis

MultiLogger.new([logger1, logger2])

Args

loggers

An array of loggers. Each one gets every message that is sent to the MultiLogger instance

Description

Create an instance.



92
93
94
95
96
# File 'lib/logstash-logger/multi_logger.rb', line 92

def initialize(loggers)
  @loggers = []
  super(nil)
  @loggers = Array(loggers)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object

Any method not defined on standard Logger class, just send it on to anyone who will listen



70
71
72
73
74
75
76
# File 'lib/logstash-logger/multi_logger.rb', line 70

def method_missing(name, *args, &block)
  @loggers.each do |logger|
    if logger.respond_to?(name)
      logger.send(name, args, &block)
    end
  end
end

Instance Attribute Details

#loggersObject

Array of Loggers to be logged to. These can be anything that acts reasonably like a Logger.



5
6
7
# File 'lib/logstash-logger/multi_logger.rb', line 5

def loggers
  @loggers
end

Instance Method Details

#<<(msg) ⇒ Object



105
106
107
108
109
# File 'lib/logstash-logger/multi_logger.rb', line 105

def <<(msg)
  @loggers.each do |logger|
    logger << msg
  end
end

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

Methods that write to logs just write to each contained logger in turn



99
100
101
102
103
# File 'lib/logstash-logger/multi_logger.rb', line 99

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

#closeObject



147
148
149
150
151
# File 'lib/logstash-logger/multi_logger.rb', line 147

def close
  @loggers.each do |logger|
    logger.close if logger.respond_to?(:close)
  end
end

#datetime_format=(datetime_format) ⇒ Object



21
22
23
24
25
26
# File 'lib/logstash-logger/multi_logger.rb', line 21

def datetime_format=(datetime_format)
  super
  @loggers.each do |logger|
    logger.datetime_format = datetime_format
  end
end

#debug(progname = nil, &block) ⇒ Object



111
112
113
114
115
# File 'lib/logstash-logger/multi_logger.rb', line 111

def debug(progname = nil, &block)
  @loggers.each do |logger|
    logger.debug(progname, &block)
  end
end

#error(progname = nil, &block) ⇒ Object



129
130
131
132
133
# File 'lib/logstash-logger/multi_logger.rb', line 129

def error(progname = nil, &block)
  @loggers.each do |logger|
    logger.error(progname, &block)
  end
end

#fatal(progname = nil, &block) ⇒ Object



135
136
137
138
139
# File 'lib/logstash-logger/multi_logger.rb', line 135

def fatal(progname = nil, &block)
  @loggers.each do |logger|
    logger.fatal(progname, &block)
  end
end

#formatter=(formatter) ⇒ Object



28
29
30
31
32
33
# File 'lib/logstash-logger/multi_logger.rb', line 28

def formatter=(formatter)
  super
  @loggers.each do |logger|
    logger.formatter ||= formatter
  end
end

#info(progname = nil, &block) ⇒ Object



117
118
119
120
121
# File 'lib/logstash-logger/multi_logger.rb', line 117

def info(progname = nil, &block)
  @loggers.each do |logger|
    logger.info(progname, &block)
  end
end

#level=(value) ⇒ Object



7
8
9
10
11
12
# File 'lib/logstash-logger/multi_logger.rb', line 7

def level=(value)
  super
  @loggers.each do |logger|
    logger.level = value
  end
end

#progname=(value) ⇒ Object



14
15
16
17
18
19
# File 'lib/logstash-logger/multi_logger.rb', line 14

def progname=(value)
  super
  @loggers.each do |logger|
    logger.progname = value
  end
end

#silence(temporary_level = ::Logger::ERROR, &block) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/logstash-logger/multi_logger.rb', line 35

def silence(temporary_level = ::Logger::ERROR, &block)
  silenceable_loggers = @loggers.select do |logger|
    logger.respond_to?(:silence)
  end

  silence_loggers(temporary_level, silenceable_loggers, &block)
end

#tagged(*tags, &block) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/logstash-logger/multi_logger.rb', line 52

def tagged(*tags, &block)
  taggable_loggers = @loggers.select do |logger|
    logger.respond_to?(:tagged)
  end

  tag_loggers(tags, taggable_loggers, &block)
end

#unknown(progname = nil, &block) ⇒ Object



141
142
143
144
145
# File 'lib/logstash-logger/multi_logger.rb', line 141

def unknown(progname = nil, &block)
  @loggers.each do |logger|
    logger.unknown(progname, &block)
  end
end

#warn(progname = nil, &block) ⇒ Object



123
124
125
126
127
# File 'lib/logstash-logger/multi_logger.rb', line 123

def warn(progname = nil, &block)
  @loggers.each do |logger|
    logger.warn(progname, &block)
  end
end