Module: Sinatra::CustomLogger

Defined in:
lib/sinatra/custom_logger.rb

Overview

Sinatra::CustomLogger

CustomLogger extension allows you to define your own logger instance using logger setting. That logger then will be available as #logger helper method in your routes and views.

Usage

Classic Application

To define your custom logger instance in a classic application:

require 'sinatra'
require 'sinatra/custom_logger'
require 'logger'

set :logger, Logger.new(STDOUT)

get '/' do
  logger.info 'Some message' # STDOUT logger is used
  # Other code...
end

Modular Application

The same for modular application:

require 'sinatra/base'
require 'sinatra/custom_logger'
require 'logger'

class MyApp < Sinatra::Base
  helpers Sinatra::CustomLogger

  configure :development, :production do
    logger = Logger.new(File.open("#{root}/log/#{environment}.log", 'a'))
    logger.level = Logger::DEBUG if development?
    set :logger, logger
  end

  get '/' do
    logger.info 'Some message' # File-based logger is used
    # Other code...
  end
end

Instance Method Summary collapse

Instance Method Details

#loggerObject


50
51
52
53
54
55
56
# File 'lib/sinatra/custom_logger.rb', line 50

def logger
  if settings.respond_to?(:logger)
    settings.logger
  else
    request.logger
  end
end