jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/346586 )

Change subject: Mirror child process output to console
......................................................................


Mirror child process output to console

Bug: T162294
Change-Id: I79184671e345253c165d87cc5732d0b57a4b5896
---
M processcontrol/output_streamer.py
1 file changed, 16 insertions(+), 4 deletions(-)

Approvals:
  jenkins-bot: Verified
  Ejegg: Looks good to me, approved



diff --git a/processcontrol/output_streamer.py 
b/processcontrol/output_streamer.py
index 89d659e..4735580 100644
--- a/processcontrol/output_streamer.py
+++ b/processcontrol/output_streamer.py
@@ -1,5 +1,7 @@
+import logging
 import logging.config
 import os
+import sys
 import threading
 
 from . import config
@@ -31,6 +33,7 @@
         self.filename = make_logfile_path(slug, start_time)
         self.logger = None
         self.threads = {}
+        self.log_handlers = []
 
     def start(self):
         self.init_logger()
@@ -66,11 +69,18 @@
         self.logger = logging.getLogger(self.slug)
         self.logger.setLevel(logging.INFO)
 
-        self.log_file_handler = logging.FileHandler(self.filename)
+        log_file_handler = logging.FileHandler(self.filename)
         formatter = 
logging.Formatter("%(asctime)s\t%(levelname)s\t%(message)s")
-        self.log_file_handler.setFormatter(formatter)
+        log_file_handler.setFormatter(formatter)
 
-        self.logger.addHandler(self.log_file_handler)
+        self.log_handlers.append(log_file_handler)
+        self.logger.addHandler(log_file_handler)
+
+        if sys.stdout.isatty():
+            # Mirror to the console if run interactively.
+            console_handler = logging.StreamHandler(sys.stdout)
+            self.log_handlers.append(console_handler)
+            self.logger.addHandler(console_handler)
 
         # FIXME: gets written for each subprocess, so the name=slug is not
         # quite right.  Should be the commandline?
@@ -85,4 +95,6 @@
 
         # FIXME: sorry, I don't know what else to do.  If we keep adding file
         # handlers, we're in hot soup.
-        self.logger.removeHandler(self.log_file_handler)
+        for handler in self.log_handlers:
+            self.logger.removeHandler(handler)
+        self.log_handlers = []

-- 
To view, visit https://gerrit.wikimedia.org/r/346586
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I79184671e345253c165d87cc5732d0b57a4b5896
Gerrit-PatchSet: 8
Gerrit-Project: wikimedia/fundraising/process-control
Gerrit-Branch: master
Gerrit-Owner: Awight <[email protected]>
Gerrit-Reviewer: Awight <[email protected]>
Gerrit-Reviewer: Cdentinger <[email protected]>
Gerrit-Reviewer: Ejegg <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to