Mark Sapiro wrote:

File "/usr/lib/python2.3/uu.py", line 139, in decode
  sys.stderr.write("Warning: %s\n" % str(v))
File "/usr/lib/mailman/Mailman/Logging/MultiLogger.py", line 45, in write
  _logexc(logger, msg)
File "/usr/lib/mailman/Mailman/Logging/Utils.py", line 22, in _logexc
  sys.__stderr__.write('Logging error: %s\n' % logger)
IOError: [Errno 32] Broken pipe


I think this could be fixed by changing
"/usr/lib/mailman/pythonlib/email/Message.py", line 223 from

                    uu.decode(StringIO(payload+'\n'), sfp)

to

                    uu.decode(StringIO(payload+'\n'), sfp, quiet=True)




There should be other chances that Python builtin modules spew warnings to sys.stderr. How about this patch for Logging/Utils.py to write these messages into syslog facility.



--
Tokio Kikuchi, tkikuchi@ is.kochi-u.ac.jp
http://weather.is.kochi-u.ac.jp/
Index: Utils.py
===================================================================
RCS file: /cvsroot/mailman/mailman/Mailman/Logging/Utils.py,v
retrieving revision 2.2.2.1
diff -u -r2.2.2.1 Utils.py
--- Utils.py    27 Aug 2005 01:40:16 -0000      2.2.2.1
+++ Utils.py    15 Jan 2006 02:50:11 -0000
@@ -16,12 +16,25 @@
 
 import sys
 import traceback
+import syslog
+import StringIO
+
+syslog.openlog('mailman', syslog.LOG_PID, syslog.LOG_MAIL)
 
 
 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)
+    try:
+        sys.__stderr__.write('Logging error: %s\n' % logger)
+        traceback.print_exc(file=sys.__stderr__)
+        sys.__stderr__.write('Original log message:\n%s\n' % msg)
+    except IOError:
+        syslog.syslog(syslog.LOG_INFO, 'Logging error: %s\n' % logger)
+        tbio = StringIO.StringIO()
+        traceback.print_exc(file=tbio)
+        syslog.syslog(syslog.LOG_INFO, tbio.getvalue())
+        tbio.close()
+        syslog.syslog(syslog.LOG_INFO, 'Original log message:\n%s\n' % msg)
+
 
 
 def LogStdErr(category, label, manual_reprime=1, tee_to_real_stderr=1):
_______________________________________________
Mailman-Developers mailing list
Mailman-Developers@python.org
http://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: 
http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq01.027.htp

Reply via email to