setup and expose logger
This commit is contained in:
parent
1d9034ff80
commit
85a80e0152
|
@ -149,6 +149,11 @@ module Sinatra
|
|||
request.session
|
||||
end
|
||||
|
||||
# Access shared logger object.
|
||||
def logger
|
||||
request.logger
|
||||
end
|
||||
|
||||
# Look up a media type by file extension in Rack's mime registry.
|
||||
def mime_type(type)
|
||||
Base.mime_type(type)
|
||||
|
@ -1232,8 +1237,8 @@ module Sinatra
|
|||
# an instance of this class as end point.
|
||||
def build(*args, &bk)
|
||||
builder = Rack::Builder.new
|
||||
setup_logging builder
|
||||
builder.use Rack::Session::Cookie if sessions?
|
||||
builder.use Rack::CommonLogger if logging?
|
||||
builder.use Rack::MethodOverride if method_override?
|
||||
builder.use ShowExceptions if show_exceptions?
|
||||
middleware.each { |c,a,b| builder.use(c, *a, &b) }
|
||||
|
@ -1246,6 +1251,19 @@ module Sinatra
|
|||
end
|
||||
|
||||
private
|
||||
def setup_logging(builder)
|
||||
if logging?
|
||||
builder.use Rack::CommonLogger
|
||||
if logging.respond_to? :to_int
|
||||
builder.use Rack::Logger, logging
|
||||
else
|
||||
builder.use Rack::Logger
|
||||
end
|
||||
else
|
||||
builder.use Rack::NullLogger
|
||||
end
|
||||
end
|
||||
|
||||
def detect_rack_handler
|
||||
servers = Array(server)
|
||||
servers.each do |server_name|
|
||||
|
|
|
@ -779,6 +779,36 @@ class HelpersTest < Test::Unit::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
describe 'logger' do
|
||||
it 'logging works when logging is enabled' do
|
||||
mock_app do
|
||||
enable :logging
|
||||
get '/' do
|
||||
logger.info "Program started"
|
||||
logger.warn "Nothing to do!"
|
||||
end
|
||||
end
|
||||
io = StringIO.new
|
||||
get '/', {}, 'rack.errors' => io
|
||||
assert io.string.include?("INFO -- : Program started")
|
||||
assert io.string.include?("WARN -- : Nothing to do")
|
||||
end
|
||||
|
||||
it 'logging works when logging is disable, but no output is produced' do
|
||||
mock_app do
|
||||
disable :logging
|
||||
get '/' do
|
||||
logger.info "Program started"
|
||||
logger.warn "Nothing to do!"
|
||||
end
|
||||
end
|
||||
io = StringIO.new
|
||||
get '/', {}, 'rack.errors' => io
|
||||
assert !io.string.include?("INFO -- : Program started")
|
||||
assert !io.string.include?("WARN -- : Nothing to do")
|
||||
end
|
||||
end
|
||||
|
||||
module ::HelperOne; def one; '1'; end; end
|
||||
module ::HelperTwo; def two; '2'; end; end
|
||||
|
||||
|
|
Loading…
Reference in New Issue