delegating and deprecating logger#silence. fixes #4159

This commit is contained in:
Aaron Patterson
2011-12-24 10:34:54 -07:00
parent 0e8cbbe7d5
commit b590fe4892
3 changed files with 33 additions and 16 deletions

View File

@@ -1,4 +1,5 @@
require 'active_support/core_ext/class/attribute_accessors' require 'active_support/core_ext/class/attribute_accessors'
require 'active_support/deprecation'
# Adds the 'around_level' method to Logger. # Adds the 'around_level' method to Logger.
class Logger #:nodoc: class Logger #:nodoc:
@@ -49,6 +50,7 @@ class Logger
yield self yield self
end end
end end
deprecate :silence
alias :old_datetime_format= :datetime_format= alias :old_datetime_format= :datetime_format=
# Logging date-time format (string passed to +strftime+). Ignored if the formatter # Logging date-time format (string passed to +strftime+). Ignored if the formatter

View File

@@ -1,4 +1,5 @@
require 'active_support/core_ext/object/blank' require 'active_support/core_ext/object/blank'
require 'active_support/deprecation'
require 'logger' require 'logger'
module ActiveSupport module ActiveSupport
@@ -26,6 +27,11 @@ module ActiveSupport
new_tags.size.times { tags.pop } new_tags.size.times { tags.pop }
end end
def silence(temporary_level = ERROR, &block)
@logger.silience(temporary_level, &block)
end
deprecate :silence
def add(severity, message = nil, progname = nil, &block) def add(severity, message = nil, progname = nil, &block)
@logger.add(severity, "#{tags_text}#{message}", progname, &block) @logger.add(severity, "#{tags_text}#{message}", progname, &block)
end end

View File

@@ -1,8 +1,11 @@
require 'abstract_unit' require 'abstract_unit'
require 'stringio' require 'stringio'
require 'active_support/core_ext/logger' require 'active_support/core_ext/logger'
require 'active_support/testing/deprecation'
class CleanLoggerTest < Test::Unit::TestCase class CleanLoggerTest < Test::Unit::TestCase
include ActiveSupport::Testing::Deprecation
def setup def setup
@out = StringIO.new @out = StringIO.new
@logger = Logger.new(@out) @logger = Logger.new(@out)
@@ -14,28 +17,34 @@ class CleanLoggerTest < Test::Unit::TestCase
end end
def test_silence def test_silence
# Without yielding self. assert_deprecated do
@logger.silence do # Without yielding self.
@logger.debug 'debug' @logger.silence do
@logger.info 'info' @logger.debug 'debug'
@logger.warn 'warn' @logger.info 'info'
@logger.error 'error' @logger.warn 'warn'
@logger.fatal 'fatal' @logger.error 'error'
@logger.fatal 'fatal'
end
end end
# Yielding self. assert_deprecated do
@logger.silence do |logger| # Yielding self.
logger.debug 'debug' @logger.silence do |logger|
logger.info 'info' logger.debug 'debug'
logger.warn 'warn' logger.info 'info'
logger.error 'error' logger.warn 'warn'
logger.fatal 'fatal' logger.error 'error'
logger.fatal 'fatal'
end
end end
# Silencer off. # Silencer off.
Logger.silencer = false Logger.silencer = false
@logger.silence do |logger| assert_deprecated do
logger.warn 'unsilenced' @logger.silence do |logger|
logger.warn 'unsilenced'
end
end end
Logger.silencer = true Logger.silencer = true