[Python-checkins] r84218 - python/branches/py3k/Lib/logging/handlers.py

vinay.sajip python-checkins at python.org
Fri Aug 20 00:20:22 CEST 2010


Author: vinay.sajip
Date: Fri Aug 20 00:20:22 2010
New Revision: 84218

Log:
Issue #7077: Fixed SysLogHandler implementation of Unicode handling.

Modified:
   python/branches/py3k/Lib/logging/handlers.py

Modified: python/branches/py3k/Lib/logging/handlers.py
==============================================================================
--- python/branches/py3k/Lib/logging/handlers.py	(original)
+++ python/branches/py3k/Lib/logging/handlers.py	Fri Aug 20 00:20:22 2010
@@ -732,12 +732,6 @@
             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 @@
         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:


More information about the Python-checkins mailing list