This extension is part of the Sinatra::Contrib project. Run gem install sinatra-contrib to have it available.

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