summaryrefslogtreecommitdiff
path: root/Mailman/Logging/Utils.py
diff options
context:
space:
mode:
authorklm1998-07-23 04:44:06 +0000
committerklm1998-07-23 04:44:06 +0000
commitbaa629f96e7d3486bb89f7eca7a5db0142a72e64 (patch)
treec2bac1d9673b16925f70cf2e9b1c0607e1d425f8 /Mailman/Logging/Utils.py
parent9c08a20db6f5079e698fd4ce5533bd0c30de1d00 (diff)
downloadmailman-baa629f96e7d3486bb89f7eca7a5db0142a72e64.tar.gz
mailman-baa629f96e7d3486bb89f7eca7a5db0142a72e64.tar.zst
mailman-baa629f96e7d3486bb89f7eca7a5db0142a72e64.zip
Diffstat (limited to 'Mailman/Logging/Utils.py')
-rw-r--r--Mailman/Logging/Utils.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/Mailman/Logging/Utils.py b/Mailman/Logging/Utils.py
index aba3d389d..68994c882 100644
--- a/Mailman/Logging/Utils.py
+++ b/Mailman/Logging/Utils.py
@@ -22,3 +22,24 @@ def __logexc(logger=None, msg=''):
sys.__stderr__.write('Logging error: %s\n' % logger)
traceback.print_exc(file=sys.__stderr__)
sys.__stderr__.write('Original log message:\n%s\n' % msg)
+
+def LogStdErr(category, label, manual_reprime=1, tee_to_stdout=1):
+ """Establish a StampedLogger on sys.stderr if possible. sys.stdout
+ also gets stderr output, using a MultiLogger.
+
+ Returns the MultiLogger if successful, None otherwise."""
+ import sys
+ from StampedLogger import StampedLogger
+ from MultiLogger import MultiLogger
+ try:
+ sys.stderr = StampedLogger('error',
+ label=label,
+ manual_reprime=1,
+ nofail=0)
+ if tee_to_stdout:
+ multi = MultiLogger(sys.__stdout__, sys.stderr)
+ sys.stderr = multi
+ return sys.stderr
+ except IOError:
+ return None
+