1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
# frozen_string_literal: true
module Sinatra
# = 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
#
module CustomLogger
def logger
if settings.respond_to?(:logger)
settings.logger
else
request.logger
end
end
end
helpers CustomLogger
end
|