From 6b1239a8203a6150762eb8856c72771784b33bd0 Mon Sep 17 00:00:00 2001 From: nahi Date: Tue, 13 Sep 2005 13:13:41 +0000 Subject: * lib/logger.rb (Logger): added formatter accessor to logger for dictating the way in which the logger should format the messages it displays. Thanks to Nicholas Seckar (cf. [ruby-talk:153391]) and Daniel Berger. * lib/logger.rb (Logger): added VERSION constant. * lib/logger.rb: removed document for LogDevice. It is an implementation detail and is not a public interface. * test/logger/test_logger.rb: added tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/logger/test_logger.rb | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) (limited to 'test/logger/test_logger.rb') diff --git a/test/logger/test_logger.rb b/test/logger/test_logger.rb index 7f11a30a1f..6fba2bc7b6 100644 --- a/test/logger/test_logger.rb +++ b/test/logger/test_logger.rb @@ -36,13 +36,17 @@ class TestLogger < Test::Unit::TestCase end def log(logger, msg_id, *arg, &block) + Log.new(log_raw(logger, msg_id, *arg, &block)) + end + + def log_raw(logger, msg_id, *arg, &block) logdev = Tempfile.new(File.basename(__FILE__) + '.log') logger.instance_eval { @logdev = Logger::LogDevice.new(logdev) } logger.__send__(msg_id, *arg, &block) logdev.open msg = logdev.read logdev.close - Log.new(msg) + msg end def test_level @@ -98,6 +102,32 @@ class TestLogger < Test::Unit::TestCase assert_match(/^$/, log.datetime) end + def test_formatter + dummy = STDERR + logger = Logger.new(dummy) + # default + log = log(logger, :info, "foo") + assert_equal("foo\n", log.msg) + # config + logger.formatter = proc { |severity, timestamp, progname, msg| + "#{severity}:#{msg}\n\n" + } + line = log_raw(logger, :info, "foo") + assert_equal("INFO:foo\n\n", line) + # recover + logger.formatter = nil + log = log(logger, :info, "foo") + assert_equal("foo\n", log.msg) + # again + o = Object.new + def o.call(severity, timestamp, progname, msg) + "<<#{severity}-#{msg}>>\n" + end + logger.formatter = o + line = log_raw(logger, :info, "foo") + assert_equal("<>\n", line) + end + def test_initialize logger = Logger.new(STDERR) assert_nil(logger.progname) @@ -301,7 +331,6 @@ class TestLogDevice < Test::Unit::TestCase assert(!File.exist?(logfile3)) logger.error("0" * 15) assert(!File.exist?(logfile3)) - logger.close File.unlink(logfile) File.unlink(logfile0) File.unlink(logfile1) @@ -337,7 +366,6 @@ class TestLogDevice < Test::Unit::TestCase assert(!File.exist?(logfile3)) logger.error("0" * 15) assert(!File.exist?(logfile3)) - logger.close File.unlink(logfile) File.unlink(logfile0) File.unlink(logfile1) -- cgit v1.2.3