]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/commitdiff
logger: don't actually close the console logger
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Fri, 4 Jun 2021 14:44:03 +0000 (16:44 +0200)
committerMatthias Hecker <36882671+mattzque@users.noreply.github.com>
Sat, 5 Jun 2021 16:06:45 +0000 (18:06 +0200)
We nil the internal variable, but we should not close the logger itself,
since this leads to STDERR being closed and the interpreter reopening it
for its own needs, or something like that, which ultimately leads to
the interpreter's warning appearing in console (probably due to ruby
itself reopening stderr to be able to output the messages).

If we simply nil the variable, the interpreter is content with sending
us the messages per our shenanigangs, and everything works just as
expected.

lib/rbot/logger.rb

index 4189151c77f9b5a3477f869b3f4e40ca636da091..494324d9bf88e592fa088991101ee5e0a9fa9ff2 100644 (file)
@@ -21,7 +21,6 @@ class Bot
     end
 
     def disable_console_logger
-      @console_logger.close if @console_logger
       @console_logger = nil
     end
 
@@ -84,6 +83,8 @@ class Bot
     end
 
     def log_session_start
+      # if we forked, the thread may be dead, so let's restart it if necessary
+      start_thread
       if @file_logger
         @file_logger << "\n\n=== session started on #{Time.now.strftime(@dateformat)} ===\n\n"
       end