62 lines
1.4 KiB
Ruby
62 lines
1.4 KiB
Ruby
# 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
|