diff options
| -rw-r--r-- | activesupport/lib/active_support/tagged_logging.rb | 5 | ||||
| -rw-r--r-- | activesupport/test/tagged_logging_test.rb | 8 | 
2 files changed, 11 insertions, 2 deletions
| diff --git a/activesupport/lib/active_support/tagged_logging.rb b/activesupport/lib/active_support/tagged_logging.rb index d71215b447..6af87e85e6 100644 --- a/activesupport/lib/active_support/tagged_logging.rb +++ b/activesupport/lib/active_support/tagged_logging.rb @@ -33,13 +33,14 @@ module ActiveSupport      deprecate :silence      def add(severity, message = nil, progname = nil, &block) -      @logger.add(severity, "#{tags_text}#{message}", progname, &block) +      message = (block_given? ? block.call : progname) if message.nil? +      @logger.add(severity, "#{tags_text}#{message}", progname)      end      %w( fatal error warn info debug unknown ).each do |severity|        eval <<-EOM, nil, __FILE__, __LINE__ + 1          def #{severity}(progname = nil, &block) -          add(Logger::#{severity.upcase}, progname, &block) +          add(Logger::#{severity.upcase}, nil, progname, &block)          end        EOM      end diff --git a/activesupport/test/tagged_logging_test.rb b/activesupport/test/tagged_logging_test.rb index 7ecab33a9a..c838c073e6 100644 --- a/activesupport/test/tagged_logging_test.rb +++ b/activesupport/test/tagged_logging_test.rb @@ -70,4 +70,12 @@ class TaggedLoggingTest < ActiveSupport::TestCase        assert_nothing_raised { @logger.silence {} }      end    end + +  test "calls block" do +    @logger.tagged("BCX") do +      @logger.info { "Funky town" } +    end +    assert_equal "[BCX] Funky town\n", @output.string +  end +  end | 
