From 406fd7754e804312d457fb09e0ded92afe0c0d54 Mon Sep 17 00:00:00 2001 From: nahi Date: Tue, 23 Sep 2003 14:12:42 +0000 Subject: [PATCH] * lib/logger.rb: add Logger#<<(msg) for writing msg without any formatting. * test/logger/test_logger.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ lib/logger.rb | 18 ++++++++++++++++++ test/logger/test_logger.rb | 21 ++++++++++++++++++++- 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index c5ec4546a2..6bf05b6dc6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Mon Sep 23 23:10:16 2003 NAKAMURA, Hiroshi + + * lib/logger.rb: add Logger#<<(msg) for writing msg without any + formatting. + + * test/logger/test_logger.rb: ditto. + Mon Sep 22 21:28:57 2003 WATANABE Hirofumi * MANIFEST: updated. diff --git a/lib/logger.rb b/lib/logger.rb index 7e8134eee3..04a106b448 100644 --- a/lib/logger.rb +++ b/lib/logger.rb @@ -185,6 +185,24 @@ class Logger end alias log add + # SYNOPSIS + # Logger#<<(msg) + # + # ARGS + # msg Message. + # + # RETURN + # Same as IO#<<. If logdev is not given, returns nil. + # + # DESCRIPTION + # Dump given message to log device without any formatting. + # + def <<(msg) + unless @logdev.nil? + @logdev.write(msg) + end + end + # SYNOPSIS # Logger#debug(progname = nil) { ... } = nil # Logger#info(progname = nil) { ... } = nil diff --git a/test/logger/test_logger.rb b/test/logger/test_logger.rb index afaa05755f..339a72e867 100644 --- a/test/logger/test_logger.rb +++ b/test/logger/test_logger.rb @@ -1,6 +1,5 @@ require 'test/unit' require 'logger' -GC.start class TestLoggerSeverity < Test::Unit::TestCase def test_enum @@ -210,4 +209,24 @@ class TestLogger < Test::Unit::TestCase log = log_add(logger, INFO, MyMsg.new) assert_equal("my_msg\n", log.msg) end + + def test_lshift + r, w = IO.pipe + logger = Logger.new(w) + logger << "msg" + read_ready, = IO.select([r], nil, nil, 0.1) + w.close + msg = r.read + r.close + assert_equal("msg", msg) + # + r, w = IO.pipe + logger = Logger.new(w) + logger << "msg2\n\n" + read_ready, = IO.select([r], nil, nil, 0.1) + w.close + msg = r.read + r.close + assert_equal("msg2\n\n", msg) + end end