]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/commitdiff
+ ircbot logging: atomic multiline log records
authordmitry kim <jason@nichego.net>
Tue, 15 Apr 2008 19:07:02 +0000 (23:07 +0400)
committerdmitry kim <jason@nichego.net>
Tue, 15 Apr 2008 19:07:02 +0000 (23:07 +0400)
lib/rbot/ircbot.rb

index 7def98b5140ebcd3c761e33d7f66fd148eca3965..4dcc91fcf1d4a03ba0fd730ae9da9d35da1be9d3 100644 (file)
@@ -20,9 +20,9 @@ $logger.level = 0 if $debug
 
 $log_queue = Queue.new
 Thread.new do
-  l = nil
-  while l = $log_queue.pop
-    $logger.add(*l)
+  ls = nil
+  while ls = $log_queue.pop
+    ls.each { |l| $logger.add(*l) }
   end
 end
 
@@ -63,10 +63,12 @@ def rawlog(level, message=nil, who_pos=1)
   else
     str = message.pretty_inspect
   end
+  qmsg = Array.new
   str.each_line { |l|
-    $log_queue.push [level, l.chomp, who]
+    qmsg.push [level, l.chomp, who]
     who = ' ' * who.size
   }
+  $log_queue.push qmsg
 end
 
 def log_session_start