SF patch #725904, Minor changes to logging from module author (Vinay Sajip)

- upgrade to version 0.4.8
This commit is contained in:
Neal Norwitz 2003-04-23 03:49:43 +00:00
parent 11b2306960
commit f297bd1937
2 changed files with 31 additions and 16 deletions

View file

@ -35,21 +35,14 @@ 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.

View file

@ -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 = '&'