From 805001b380b56c984ff9bc1e09019ae6163b3094 Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Sat, 3 Mar 2012 02:14:26 -0200 Subject: [PATCH] Use rack.logger if it's avaiable --- lib/rack/cache/context.rb | 17 +++++++++++++++-- test/context_test.rb | 15 +++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/lib/rack/cache/context.rb b/lib/rack/cache/context.rb index df8e492..578b31a 100644 --- a/lib/rack/cache/context.rb +++ b/lib/rack/cache/context.rb @@ -79,7 +79,7 @@ def call!(env) if verbose? message = "cache: [%s %s] %s\n" % [@request.request_method, @request.fullpath, trace] - @env['rack.errors'].write(message) + log_info(message) end # tidy up response a bit @@ -280,7 +280,20 @@ def strip_ignore_headers(response) end def log_error(exception) - @env['rack.errors'].write("cache error: #{exception.message}\n#{exception.backtrace.join("\n")}\n") + message = "cache error: #{exception.message}\n#{exception.backtrace.join("\n")}\n" + log(:error, message) + end + + def log_info(message) + log(:info, message) + end + + def log(level, message) + if @env['rack.logger'] + @env['rack.logger'].send(level, message) + else + @env['rack.errors'].write(message) + end end end end diff --git a/test/context_test.rb b/test/context_test.rb index 36e7022..3ba1c48 100644 --- a/test/context_test.rb +++ b/test/context_test.rb @@ -913,4 +913,19 @@ response.body.should.equal 'Hello World' cache.trace.should.include :pass end + + it 'logs to rack.logger if available' do + logger = Class.new do + attr_reader :logged_level + + def info(message) + @logged_level = "info" + end + end.new + + respond_with 200 + get '/', 'rack.logger' => logger + response.should.be.ok + logger.logged_level.should.equal "info" + end end