SF patch #725904, Minor changes to logging from module author (Vinay Sajip)
 - upgrade to version 0.4.8
diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
index 12a40b0..1967ba3 100644
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
@@ -35,22 +35,15 @@
     thread = None
 
 __author__  = "Vinay Sajip <vinay_sajip@red-dove.com>"
-__status__  = "alpha"
+__status__  = "beta"
 __version__ = "0.4.8"
-__date__    = "16 February 2003"
+__date__    = "22 April 2003"
 
 #---------------------------------------------------------------------------
 #   Miscellaneous module data
 #---------------------------------------------------------------------------
 
 #
-# _verinfo is used for when behaviour needs to be adjusted to the version
-# of Python
-#
-
-_verinfo = getattr(sys, "version_info", None)
-
-#
 #_srcfile is used when walking the stack to check when we've got the first
 # caller stack frame.
 #
diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py
index 48e14b6..4a597a1 100644
--- a/Lib/logging/handlers.py
+++ b/Lib/logging/handlers.py
@@ -26,7 +26,7 @@
 To use, simply 'import logging' and log away!
 """
 
-import sys, logging, socket, types, os, string, cPickle, struct
+import sys, logging, socket, types, os, string, cPickle, struct, time
 
 from SocketServer import ThreadingTCPServer, StreamRequestHandler
 
@@ -145,8 +145,7 @@
         This function allows for partial sends which can happen when the
         network is busy.
         """
-        v = logging._verinfo
-        if v and (v[0] >= 2) and (v[1] >= 2):
+        if hasattr(self.sock, "sendall"):
             self.sock.sendall(s)
         else:
             sentsofar = 0
@@ -448,6 +447,21 @@
         """
         return self.subject
 
+    weekdayname = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+
+    monthname = [None,
+                 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
+                 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
+
+    def date_time(self):
+        """Return the current date and time formatted for a MIME header."""
+        year, month, day, hh, mm, ss, wd, y, z = time.gmtime(time.time())
+        s = "%s, %02d %3s %4d %02d:%02d:%02d GMT" % (
+                self.weekdayname[wd],
+                day, self.monthname[month], year,
+                hh, mm, ss)
+        return s
+
     def emit(self, record):
         """
         Emit a record.
@@ -461,11 +475,11 @@
                 port = smtplib.SMTP_PORT
             smtp = smtplib.SMTP(self.mailhost, port)
             msg = self.format(record)
-            msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n%s" % (
+            msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\nDate: %s\r\n\r\n%s" % (
                             self.fromaddr,
                             string.join(self.toaddrs, ","),
-                            self.getSubject(record), msg
-                            )
+                            self.getSubject(record),
+                            self.date_time(), msg)
             smtp.sendmail(self.fromaddr, self.toaddrs, msg)
             smtp.quit()
         except:
@@ -587,6 +601,14 @@
         self.url = url
         self.method = method
 
+    def mapLogRecord(self, record):
+        """
+        Default implementation of mapping the log record into a dict
+        that is send as the CGI data. Overwrite in your class.
+        Contributed by Franz  Glasner.
+        """
+        return record.__dict__
+
     def emit(self, record):
         """
         Emit a record.
@@ -597,7 +619,7 @@
             import httplib, urllib
             h = httplib.HTTP(self.host)
             url = self.url
-            data = urllib.urlencode(record.__dict__)
+            data = urllib.urlencode(self.mapLogRecord(record))
             if self.method == "GET":
                 if (string.find(url, '?') >= 0):
                     sep = '&'