module Sinatra::CustomLogger

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

Public Instance Methods

logger() click to toggle source
# File lib/sinatra/custom_logger.rb, line 51
def logger
  if settings.respond_to?(:logger)
    settings.logger
  else
    request.logger
  end
end