diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | lib/logger.rb | 18 | ||||
-rw-r--r-- | test/logger/test_logger.rb | 21 |
3 files changed, 45 insertions, 1 deletions
@@ -1,3 +1,10 @@ +Mon Sep 23 23:10:16 2003 NAKAMURA, Hiroshi <[email protected]> + + * 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 <[email protected]> * MANIFEST: updated. diff --git a/lib/logger.rb b/lib/logger.rb index 7e8134eee3..04a106b448 100644 --- a/lib/logger.rb +++ b/lib/logger.rb @@ -186,6 +186,24 @@ class Logger 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 # Logger#warn(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 |