module Minodes::Sinatra::Logger

Constants

VERSION

Public Class Methods

logger(config) click to toggle source
# File lib/minodes/sinatra/logger.rb, line 27
def self.logger(config)
  if config[:filename].nil?
    raise "Minodes::Sinatra::Logger -- File name is not specified. Please, set `file_name` in the configuration block!"
  end

  config[:level] ||= :trace

  set :logging, true
  use ::Rack::CommonLogger, ::SemanticLogger["Access"]

  ::Sinatra::Base.before do
    ::SemanticLogger.default_level = config[:level]
    ::SemanticLogger.appenders.each { |a| ::SemanticLogger.remove_appender(a) }
    ::SemanticLogger.add_appender(file_name: config[:filename], formatter: :color)

    env["rack.errors"] = ::Minodes::Sinatra::ErrorLogger.new
    env["rack.logger"] = ::SemanticLogger[self.class.name]
  end
end