class Loggun::Config

Class for configurations

Constants

DEFAULTS
DEFAULT_MODIFIERS
LOG_FORMATS
MESSAGE_FORMATS

Attributes

custom_modifiers[RW]
exclude_keys[RW]
force_utc[RW]
formatter[RW]
log_format[RW]
message_format[RW]
modifiers[RW]
only_keys[RW]
parent_transaction_to_message[RW]
pattern[RW]
precision[RW]

Public Class Methods

check_config() click to toggle source
# File lib/loggun/config.rb, line 78
def check_config
  unless MESSAGE_FORMATS.include? instance.message_format
    raise FailureConfiguration, 'Unknown value for message_format'
  end

  unless LOG_FORMATS.include? instance.log_format
    raise FailureConfiguration, 'Unknown value for log_format'
  end
end
configure(&block) click to toggle source
# File lib/loggun/config.rb, line 59
def configure(&block)
  block.call(instance)
  use_modifiers
  check_config
  instance
end
new() click to toggle source
# File lib/loggun/config.rb, line 43
def initialize
  @formatter = Loggun::Formatter.new
  @precision = DEFAULTS[:precision]
  @pattern = DEFAULTS[:pattern]
  @parent_transaction_to_message = DEFAULTS[:parent_transaction_to_message]
  @message_format = DEFAULTS[:message_format]
  @log_format = DEFAULTS[:log_format]
  @force_utc = DEFAULTS[:force_utc]
  @modifiers = Loggun::OrderedOptions.new
  @custom_modifiers = []
  @exclude_keys = []
  @only_keys = []
  set_default_modifiers
end
setup_formatter(app, formatter = nil) click to toggle source
# File lib/loggun/config.rb, line 88
def setup_formatter(app, formatter = nil)
  Loggun.logger = app.logger
  Loggun.logger.formatter = formatter || instance.formatter
end
use_modifiers() click to toggle source
# File lib/loggun/config.rb, line 66
def use_modifiers
  DEFAULT_MODIFIERS.each do |modifier|
    next unless instance.modifiers.public_send(modifier)&.enable

    require_relative "modifiers/#{modifier}"
    klass = Loggun::Modifiers.const_get(modifier.to_s.camelize)
    klass.use
  end

  instance.custom_modifiers.each(&:use)
end

Public Instance Methods

add_modifier(modifier) click to toggle source
# File lib/loggun/config.rb, line 104
def add_modifier(modifier)
  return unless modifier.respond_to? :use

  custom_modifiers << modifier
end
set_default_modifiers() click to toggle source
# File lib/loggun/config.rb, line 94
def set_default_modifiers
  DEFAULT_MODIFIERS.each do |modifier|
    modifiers[modifier] = Loggun::OrderedOptions.new
    modifiers[modifier].enable = false
    next unless DEFAULTS[modifier].is_a?(Hash)

    modifiers[modifier].merge!(DEFAULTS[modifier])
  end
end
timestamp_precision() click to toggle source
# File lib/loggun/config.rb, line 110
def timestamp_precision
  case precision
  when :sec, :seconds then 0
  when :millis, :milliseconds, :ms then 3
  when :micros, :microseconds, :us then 6
  when :nanos, :nanoseconds, :ns then 9
  else
    3 # milliseconds
  end
end