diff options
Diffstat (limited to 'Lib/logging')
-rw-r--r-- | Lib/logging/__init__.py | 11 | ||||
-rw-r--r-- | Lib/logging/handlers.py | 36 |
2 files changed, 31 insertions, 16 deletions
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 @@ except ImportError: 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 @@ Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved. 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 @@ class SocketHandler(logging.Handler): 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 @@ class SMTPHandler(logging.Handler): """ 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 @@ class SMTPHandler(logging.Handler): 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 @@ class HTTPHandler(logging.Handler): 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 @@ class HTTPHandler(logging.Handler): 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 = '&' |