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.



57
58
59
60
61
# File 'lib/logstash-logger/multi_logger.rb', line 57

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



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

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.



32
33
34
# File 'lib/logstash-logger/multi_logger.rb', line 32

def loggers
  @loggers
end

Instance Method Details

#<<(msg) ⇒ Object



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

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



64
65
66
67
68
# File 'lib/logstash-logger/multi_logger.rb', line 64

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

#closeObject



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

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

#datetime_format=(datetime_format) ⇒ Object



18
19
20
21
22
23
# File 'lib/logstash-logger/multi_logger.rb', line 18

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

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



76
77
78
79
80
# File 'lib/logstash-logger/multi_logger.rb', line 76

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

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



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

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

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



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

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

#formatter=(formatter) ⇒ Object



25
26
27
28
29
# File 'lib/logstash-logger/multi_logger.rb', line 25

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

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



82
83
84
85
86
# File 'lib/logstash-logger/multi_logger.rb', line 82

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

#level=(value) ⇒ Object



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

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

#progname=(value) ⇒ Object



11
12
13
14
15
16
# File 'lib/logstash-logger/multi_logger.rb', line 11

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

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



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

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

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



88
89
90
91
92
# File 'lib/logstash-logger/multi_logger.rb', line 88

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