class VidazingLogger::Appenders::LoggingGemAdapter
Uses an appender
@api private @since 0.2.0
Attributes
logging_appender[R]
vidazing_appender[R]
Public Class Methods
new(type:, vidazing_appender:)
click to toggle source
# File lib/vidazing_logger/appenders/logging_gem_adapter.rb, line 16 def initialize(type:, vidazing_appender:) @vidazing_appender = vidazing_appender logging_filter = create_logging_filter logging_layout = create_logging_layout logging_appender_options = create_logging_appender_options \ filter: logging_filter, layout: logging_layout @logging_appender = create_logging_appender \ type: type, name: vidazing_appender.name, options: logging_appender_options end
Private Class Methods
rolling_file(vidazing_appender:)
click to toggle source
# File lib/vidazing_logger/appenders/logging_gem_adapter.rb, line 106 def rolling_file(vidazing_appender:) LoggingGemAdapter.new(type: Type::ID_ROLLING_FILE, vidazing_appender: vidazing_appender) end
stderr(vidazing_appender:)
click to toggle source
# File lib/vidazing_logger/appenders/logging_gem_adapter.rb, line 101 def stderr(vidazing_appender:) LoggingGemAdapter.new(type: Type::ID_STDERR, vidazing_appender: vidazing_appender) end
stdout(vidazing_appender:)
click to toggle source
# File lib/vidazing_logger/appenders/logging_gem_adapter.rb, line 96 def stdout(vidazing_appender:) LoggingGemAdapter.new(type: Type::ID_STDOUT, vidazing_appender: vidazing_appender) end
Private Instance Methods
create_logging_appender(type:, name:, options:)
click to toggle source
# File lib/vidazing_logger/appenders/logging_gem_adapter.rb, line 46 def create_logging_appender(type:, name:, options:) abort('options are empty!') if options.empty? abort("Invalid Type '#{type}'") unless Type.valid_type?(type: type) options.unshift(name) Logging.appenders.public_send(type, *options) Logging.appenders[name] end
create_logging_appender_options(filter:, layout:)
click to toggle source
# File lib/vidazing_logger/appenders/logging_gem_adapter.rb, line 34 def create_logging_appender_options(filter:, layout:) [ filters: filter, layout: layout, # These are specific to Appenders::Type.rolling_file # But the underlying logging library uses opts.fetch # So these will be ignored for other appenders types age: 'daily', keep: 7 ] end
create_logging_color_scheme()
click to toggle source
# File lib/vidazing_logger/appenders/logging_gem_adapter.rb, line 78 def create_logging_color_scheme color_scheme = @vidazing_appender.color_scheme name = color_scheme.name # Logging holds the color scheme reference Logging.color_scheme(name, color_scheme.scheme) name end
create_logging_filter()
click to toggle source
# File lib/vidazing_logger/appenders/logging_gem_adapter.rb, line 56 def create_logging_filter # rubocop:disable Metrics/MethodLength # Logging::Filters::Level takes *levels as its argument. # This means we can't store the method arguments ahead of time # in an array and directly pass those. # # Instead, to isolate the Logging gem reference, we hack level0, level1, level2, level3, level4 = *@vidazing_appender.filter_levels if level1.nil? Logging::Filters::Level.new(level0) elsif level2.nil? Logging::Filters::Level.new(level0, level1) elsif level3.nil? Logging::Filters::Level.new(level0, level1, level2) elsif level4.nil? Logging::Filters::Level.new(level0, level1, level2, level3) else Logging::Filters::Level.new(:all) end end
create_logging_layout()
click to toggle source
# File lib/vidazing_logger/appenders/logging_gem_adapter.rb, line 88 def create_logging_layout color_scheme_name = create_logging_color_scheme layout = LayoutPattern.colored(color_scheme_name).layout Logging.layouts.pattern layout end