lib/log_tribe/loggers.rb in log_tribe-0.2.9 vs lib/log_tribe/loggers.rb in log_tribe-0.2.10

- old
+ new

@@ -9,10 +9,11 @@ # See #level def level=(value) @level = value @loggers.each do |logger| + next unless logger logger.level = value if logger.respond_to?(:level) end end # Program name to include in log messages. @@ -20,10 +21,11 @@ # See #progname def progname=(value) @progname = value @loggers.each do |logger| + next unless logger logger.progname = value if logger.respond_to?(:progname) end end # Returns the date format being used. See #datetime_format= @@ -33,10 +35,11 @@ # # +datetime_format+:: A string suitable for passing to +strftime+. def datetime_format=(datetime_format) @datetime_format = datetime_format @loggers.each do |logger| + next unless logger logger.datetime_format = datetime_format if logger.respond_to?(:datetime_format) end end # Logging formatter, as a +Proc+ that will take four arguments and @@ -55,10 +58,11 @@ # See #formatter def formatter=(callable) @formatter = callable @loggers.each do |logger| + next unless logger logger.formatter = callable if logger.respond_to?(:formatter) end end # See ::Logger#Formatter @@ -138,10 +142,11 @@ # * Append open does not need to lock file. # * If the OS supports multi I/O, records possibly may be mixed. # def add(severity, message = nil, progname = nil, &block) @loggers.each do |logger| + next unless logger if logger.respond_to?(:add) logger.add(severity, message, progname, &block) elsif defined?(::Fluent::Logger) && logger.respond_to?(:post) # FluentLogger logger.post(@tag_name || 'none'.freeze, @@ -156,10 +161,11 @@ # Dump given message to the log device without any formatting. If no log # device exists, return +nil+. # def <<(msg) @loggers.each do |logger| + next unless logger if logger.respond_to?(:<<) logger << msg elsif defined?(::Fluent::Logger) && logger.respond_to?(:post) # FluentLogger logger.post(@tag_name || 'none'.freeze, message: msg) @@ -170,10 +176,14 @@ # # Close the logging devices. # def close @loggers.each do |logger| - logger.close if logger.respond_to?(:close) + next unless logger + log_device = logger.instance_variable_get('@logdev') + next unless log_device + log_device.flush if log_device.respond_to?(:flush) + logger.close if log_device.respond_to?(:stat) end end end end