module Logsly::InstanceMethods
Attributes
level[R]
log_type[R]
output_loggers[R]
outputs[R]
Public Class Methods
new(log_type, opts = nil)
click to toggle source
# File lib/logsly.rb, line 52 def initialize(log_type, opts = nil) opts ||= {} @log_type = log_type.to_s @level = (opts[:level] || opts['level'] || DEFAULT_LEVEL).to_s @outputs = [*(opts[:outputs] || opts['outputs'] || [])].uniq @output_loggers = @outputs.inject({}) do |hash, output_name| unique_name = "#{self.class.name}-#{@log_type}-#{self.object_id}-#{output_name}" logger = Logsly::Logging182.logger[unique_name] output = Logsly.outputs(output_name) output_data = output.data(self) # prefer output-specific level; fall back to general level logger.level = output_data && output_data.level ? output_data.level : @level add_appender(logger, output.to_appender(output_data)) hash[output_name] = logger hash end end
Public Instance Methods
==(other_logger)
click to toggle source
# File lib/logsly.rb, line 103 def ==(other_logger) other_logger.log_type == @log_type && other_logger.level == @level && other_logger.outputs == @outputs end
appenders()
click to toggle source
# File lib/logsly.rb, line 99 def appenders @appenders ||= self.output_loggers.map{ |(_, l)| l.appenders }.flatten end
file_path()
click to toggle source
# File lib/logsly.rb, line 78 def file_path @file_path ||= if (appender = get_file_appender(self.appenders)) appender.name if appender.respond_to?(:name) end end
inspect()
click to toggle source
# File lib/logsly.rb, line 109 def inspect reference = '0x0%x' % (self.object_id << 1) "#<#{self.class}:#{reference} "\ "@log_type=#{@log_type.inspect} "\ "@level=#{@level.inspect} "\ "@outputs=#{@outputs.inspect}" end
mdc(key, value)
click to toggle source
# File lib/logsly.rb, line 74 def mdc(key, value) Logsly::Logging182.mdc[key] = value end
Private Instance Methods
add_appender(output_logger, appender)
click to toggle source
# File lib/logsly.rb, line 119 def add_appender(output_logger, appender) output_logger.add_appenders(appender) if appender end
get_file_appender(appenders)
click to toggle source
# File lib/logsly.rb, line 123 def get_file_appender(appenders) self.appenders.detect{ |a| a.kind_of?(Logsly::Logging182::Appenders::File) } end