From: Vinay Sajip Date: Thu, 19 Aug 2010 22:20:22 +0000 (+0000) Subject: Issue #7077: Fixed SysLogHandler implementation of Unicode handling. X-Git-Tag: v3.2a2~198 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=467d12fcb2987d6530e683709978d6aadd7ceb05;p=thirdparty%2FPython%2Fcpython.git Issue #7077: Fixed SysLogHandler implementation of Unicode handling. --- diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py index 61dbf3152d95..dc2d973a6407 100644 --- a/Lib/logging/handlers.py +++ b/Lib/logging/handlers.py @@ -732,12 +732,6 @@ class SysLogHandler(logging.Handler): self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) self.socket.connect(address) - # curious: when talking to the unix-domain '/dev/log' socket, a - # zero-terminator seems to be required. this string is placed - # into a class variable so that it can be overridden if - # necessary. - log_format_string = '<%d>%s\000' - def encodePriority(self, facility, priority): """ Encode the facility and priority. You can pass in strings or @@ -781,14 +775,14 @@ class SysLogHandler(logging.Handler): We need to convert record level to lowercase, maybe this will change in the future. """ - msg = self.log_format_string % ( - self.encodePriority(self.facility, - self.mapPriority(record.levelname)), - msg) + prio = '<%d>' % self.encodePriority(self.facility, + self.mapPriority(record.levelname)) + prio = prio.encode('utf-8') #Message is a string. Convert to bytes as required by RFC 5424 msg = msg.encode('utf-8') if codecs: msg = codecs.BOM_UTF8 + msg + msg = prio + msg try: if self.unixsocket: try: