This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Yoel
Recipients Yoel, vinay.sajip
Date 2014-10-31.18:13:10
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1414779190.8.0.640385408005.issue22776@psf.upfronthosting.co.za>
In-reply-to
Content
Not all exceptions occurring during SyslogHandler's emit(..) method are caught and handled since the try-except block only covers the latter part of the method.
Thus, since handleError is not invoked, such exceptions might cause the whole program to crash, even though logging.raiseExceptions is unset.

Execution example:

In [1]: import sys

In [2]: sys.version
Out[2]: '2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2]'

In [3]: import logging.handlers

In [4]: logging.raiseExceptions = 0

In [5]: syslogHandler = logging.handlers.SysLogHandler()

In [6]: logger = logging.getLogger()

In [7]: logger.addHandler(syslogHandler)

In [8]: logger.critical('1', '1')
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-3d1c89a066c4> in <module>()
----> 1 logger.critical('1', '1')

/usr/lib/python2.7/logging/__init__.pyc in critical(self, msg, *args, **kwargs)
   1195         """
   1196         if self.isEnabledFor(CRITICAL):
-> 1197             self._log(CRITICAL, msg, args, **kwargs)
   1198 
   1199     fatal = critical

/usr/lib/python2.7/logging/__init__.pyc in _log(self, level, msg, args, exc_info, extra)
   1269                 exc_info = sys.exc_info()
   1270         record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info, func, extra)
-> 1271         self.handle(record)
   1272 
   1273     def handle(self, record):

/usr/lib/python2.7/logging/__init__.pyc in handle(self, record)
   1279         """
   1280         if (not self.disabled) and self.filter(record):
-> 1281             self.callHandlers(record)
   1282 
   1283     def addHandler(self, hdlr):

/usr/lib/python2.7/logging/__init__.pyc in callHandlers(self, record)
   1319                 found = found + 1
   1320                 if record.levelno >= hdlr.level:
-> 1321                     hdlr.handle(record)
   1322             if not c.propagate:
   1323                 c = None    #break out

/usr/lib/python2.7/logging/__init__.pyc in handle(self, record)
    747             self.acquire()
    748             try:
--> 749                 self.emit(record)
    750             finally:
    751                 self.release()

/usr/lib/python2.7/logging/handlers.pyc in emit(self, record)
    840         exception information is present, it is NOT sent to the server.
    841         """
--> 842         msg = self.format(record) + '\000'
    843         """
    844         We need to convert record level to lowercase, maybe this will

/usr/lib/python2.7/logging/__init__.pyc in format(self, record)
    722         else:
    723             fmt = _defaultFormatter
--> 724         return fmt.format(record)
    725 
    726     def emit(self, record):

/usr/lib/python2.7/logging/__init__.pyc in format(self, record)
    462         it is formatted using formatException() and appended to the message.
    463         """
--> 464         record.message = record.getMessage()
    465         if self.usesTime():
    466             record.asctime = self.formatTime(record, self.datefmt)

/usr/lib/python2.7/logging/__init__.pyc in getMessage(self)
    326                     msg = self.msg      #Defer encoding till later
    327         if self.args:
--> 328             msg = msg % self.args
    329         return msg
    330 

TypeError: not all arguments converted during string formatting

In [9]: 

Executing similar code via StreamHandler for example, doesn't raise the TypeError exception.
History
Date User Action Args
2014-10-31 18:13:10Yoelsetrecipients: + Yoel, vinay.sajip
2014-10-31 18:13:10Yoelsetmessageid: <1414779190.8.0.640385408005.issue22776@psf.upfronthosting.co.za>
2014-10-31 18:13:10Yoellinkissue22776 messages
2014-10-31 18:13:10Yoelcreate