168168
169169 before ( :all ) do
170170 @active_support = defined? ::ActiveSupport
171- @tagged_logging = active_support && ActiveSupport ::TaggedLogging rescue false
171+ @active_support = ::ActiveSupport . constants if @active_support
172+ require 'active_support/logger'
172173 end
173174
174175 after ( :all ) do
175- if @tagged_logging == false
176- if @active_support
177- ActiveSupport . send :remove_const , :TaggedLogging
178- else
179- Object . send :remove_const , :ActiveSupport rescue nil
176+ if @active_support
177+ [ :Logger , :TaggedLogging , :LoggerSilence , :LoggerThreadSafeLevel ] . each do |name | # stubbed bits we might end up loading
178+ ActiveSupport . send :remove_const , name unless @active_support . include? ( name )
180179 end
180+ else
181+ Object . send :remove_const , :ActiveSupport rescue nil
181182 end
182183 end
183184
@@ -195,7 +196,7 @@ def logger=(logger); @logger = logger; end
195196 log_initializer [ 1 ] . should == [ { :before => :initialize_logger } ]
196197 end
197198
198- it "gets set as config.logger (wrapped with tagged logging)" do
199+ it "gets set as config.logger (wrapped with tagged logging and logger_silence )" do
199200 logger = JRuby ::Rack ::Logger . new STDERR
200201 @config . stub ( :log_level ) . and_return ( :info )
201202 @config . stub ( :log_formatter ) . and_return ( nil )
@@ -206,6 +207,13 @@ def logger=(logger); @logger = logger; end
206207 rails_logger = @app . config . logger
207208 # ActiveSupport::TaggedLogging.new clones the original logger instance
208209 expect ( rails_logger ) . to be_a ( JRuby ::Rack ::Logger )
210+ expect ( rails_logger ) . to be_a ( ActiveSupport ::TaggedLogging )
211+ if defined? ActiveSupport ::LoggerSilence
212+ expect ( rails_logger ) . to be_a ( ActiveSupport ::LoggerSilence )
213+ # sanity check silence works:
214+ value_returned = rails_logger . silence ( Logger ::WARN ) { |logger | logger . class . name }
215+ expect ( value_returned ) . to eql ( 'JRuby::Rack::Logger' )
216+ end
209217 end
210218
211219 it "has a configurable log level" do
0 commit comments