X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=lib%2Frbot%2Flogger.rb;h=fd6d485fea3675b144a63e750f3c0ea7adefe713;hb=98446561cf3c7126dd93b34c9be361fa4aa8da36;hp=b5f615d7881ed061f948a28ec1db55cd65601e35;hpb=0368e8c09385a6c49e0d59cd6162675057e5b339;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/lib/rbot/logger.rb b/lib/rbot/logger.rb index b5f615d7..fd6d485f 100644 --- a/lib/rbot/logger.rb +++ b/lib/rbot/logger.rb @@ -23,13 +23,16 @@ class Bot @file_logger = nil @queue = Queue.new - @thread = start_thread + start_thread end def set_logfile(filename, keep, max_size) @file_logger = Logger.new(filename, keep, max_size*1024*1024) @file_logger.datetime_format = @dateformat @file_logger.level = @logger.level + # make sure the thread is running, which might be false after a fork + # (conveniently, we call set_logfile right after the fork) + start_thread end def set_level(level) @@ -90,10 +93,17 @@ class Bot end end + def flush + while @queue.size > 0 + next + end + end + private def start_thread - Thread.new do + return if @thread and @thread.alive? + @thread = Thread.new do lines = nil while lines = @queue.pop lines.each { |line|