module Sinatra::SensibleLogging

Sensible logging library for Sinatra based Apps

Public Instance Methods

sensible_logging( logger: Logger.new($stdout), log_tags: [], use_default_log_tags: true, exclude_params: [], tld_length: 1, include_log_severity: true ) click to toggle source
# File lib/sensible_logging.rb, line 23
def sensible_logging( # rubocop:disable Metrics/MethodLength, Metrics/ParameterLists
  logger: Logger.new($stdout),
  log_tags: [],
  use_default_log_tags: true,
  exclude_params: [],
  tld_length: 1,
  include_log_severity: true
)
  setup_middlewares(
    logger: logger,
    log_tags: log_tags,
    use_default_log_tags: use_default_log_tags,
    exclude_params: exclude_params,
    tld_length: tld_length,
    include_log_severity: include_log_severity
  )

  before do
    env['rack.logger'] = env['logger']
    env['rack.errors'] = IOWrap.new(logger, level: Logger::ERROR)
    logger.level = settings.log_level unless settings.log_level.nil?
  end
end

Private Instance Methods

setup_middlewares( logger:, log_tags:, use_default_log_tags:, exclude_params:, tld_length:, include_log_severity: ) click to toggle source
# File lib/sensible_logging.rb, line 49
def setup_middlewares( # rubocop:disable Metrics/ParameterLists
  logger:,
  log_tags:,
  use_default_log_tags:,
  exclude_params:,
  tld_length:,
  include_log_severity:
)
  use RequestId
  use(
    TaggedLogger,
    logger: logger,
    tags: log_tags,
    use_default_tags: use_default_log_tags,
    tld_length: tld_length,
    include_log_severity: include_log_severity
  )
  use RequestLogger, exclude_params
end