diff roundup/scripts/roundup_server.py @ 5523:fb9abb842f36

Fix roundup-server logging for Python 3. Using the roundup-server support for redirecting output to a log file fails with Python 3: sys.stdout = sys.stderr = open(self["LOGFILE"], 'a', 0) ValueError: can't have unbuffered text I/O Thus, this patch switches that redirection to use line-buffered output (1 as third argument to open), which works with both Python 2 and Python 3.
author Joseph Myers <jsm@polyomino.org.uk>
date Sun, 02 Sep 2018 14:18:12 +0000
parents fec18298ae02
children 3d80e7752783
line wrap: on
line diff
--- a/roundup/scripts/roundup_server.py	Sat Sep 01 18:29:16 2018 +0000
+++ b/roundup/scripts/roundup_server.py	Sun Sep 02 14:18:12 2018 +0000
@@ -674,8 +674,9 @@
 
     def set_logging(self):
         """Initialise logging to the configured file, if any."""
-        # appending, unbuffered
-        sys.stdout = sys.stderr = open(self["LOGFILE"], 'a', 0)
+        # appending, line-buffered (Python 3 does not allow unbuffered
+        # text files)
+        sys.stdout = sys.stderr = open(self["LOGFILE"], 'a', 1)
 
     def get_server(self):
         """Return HTTP server object to run"""

Roundup Issue Tracker: http://roundup-tracker.org/