aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-09-23 14:12:42 +0000
committernahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-09-23 14:12:42 +0000
commit406fd7754e804312d457fb09e0ded92afe0c0d54 (patch)
tree9f9047c7f6c90730fa200165c4c548bea323161c
parent603e0b1f19928422594c6a2d934663c01214f42f (diff)
downloadruby-406fd7754e804312d457fb09e0ded92afe0c0d54.tar.gz
* 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
-rw-r--r--ChangeLog7
-rw-r--r--lib/logger.rb18
-rw-r--r--test/logger/test_logger.rb21
3 files changed, 45 insertions, 1 deletions
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 <nahi@ruby-lang.org>
+
+ * 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 <eban@ruby-lang.org>
* 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