mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
SF patch #725904, Minor changes to logging from module author (Vinay Sajip)
- upgrade to version 0.4.8
This commit is contained in:
parent
11b2306960
commit
f297bd1937
2 changed files with 31 additions and 16 deletions
|
@ -35,21 +35,14 @@ except ImportError:
|
||||||
thread = None
|
thread = None
|
||||||
|
|
||||||
__author__ = "Vinay Sajip <vinay_sajip@red-dove.com>"
|
__author__ = "Vinay Sajip <vinay_sajip@red-dove.com>"
|
||||||
__status__ = "alpha"
|
__status__ = "beta"
|
||||||
__version__ = "0.4.8"
|
__version__ = "0.4.8"
|
||||||
__date__ = "16 February 2003"
|
__date__ = "22 April 2003"
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Miscellaneous module data
|
# 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
|
#_srcfile is used when walking the stack to check when we've got the first
|
||||||
# caller stack frame.
|
# caller stack frame.
|
||||||
|
|
|
@ -26,7 +26,7 @@ Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved.
|
||||||
To use, simply 'import logging' and log away!
|
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
|
from SocketServer import ThreadingTCPServer, StreamRequestHandler
|
||||||
|
|
||||||
|
@ -145,8 +145,7 @@ class SocketHandler(logging.Handler):
|
||||||
This function allows for partial sends which can happen when the
|
This function allows for partial sends which can happen when the
|
||||||
network is busy.
|
network is busy.
|
||||||
"""
|
"""
|
||||||
v = logging._verinfo
|
if hasattr(self.sock, "sendall"):
|
||||||
if v and (v[0] >= 2) and (v[1] >= 2):
|
|
||||||
self.sock.sendall(s)
|
self.sock.sendall(s)
|
||||||
else:
|
else:
|
||||||
sentsofar = 0
|
sentsofar = 0
|
||||||
|
@ -448,6 +447,21 @@ class SMTPHandler(logging.Handler):
|
||||||
"""
|
"""
|
||||||
return self.subject
|
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):
|
def emit(self, record):
|
||||||
"""
|
"""
|
||||||
Emit a record.
|
Emit a record.
|
||||||
|
@ -461,11 +475,11 @@ class SMTPHandler(logging.Handler):
|
||||||
port = smtplib.SMTP_PORT
|
port = smtplib.SMTP_PORT
|
||||||
smtp = smtplib.SMTP(self.mailhost, port)
|
smtp = smtplib.SMTP(self.mailhost, port)
|
||||||
msg = self.format(record)
|
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,
|
self.fromaddr,
|
||||||
string.join(self.toaddrs, ","),
|
string.join(self.toaddrs, ","),
|
||||||
self.getSubject(record), msg
|
self.getSubject(record),
|
||||||
)
|
self.date_time(), msg)
|
||||||
smtp.sendmail(self.fromaddr, self.toaddrs, msg)
|
smtp.sendmail(self.fromaddr, self.toaddrs, msg)
|
||||||
smtp.quit()
|
smtp.quit()
|
||||||
except:
|
except:
|
||||||
|
@ -587,6 +601,14 @@ class HTTPHandler(logging.Handler):
|
||||||
self.url = url
|
self.url = url
|
||||||
self.method = method
|
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):
|
def emit(self, record):
|
||||||
"""
|
"""
|
||||||
Emit a record.
|
Emit a record.
|
||||||
|
@ -597,7 +619,7 @@ class HTTPHandler(logging.Handler):
|
||||||
import httplib, urllib
|
import httplib, urllib
|
||||||
h = httplib.HTTP(self.host)
|
h = httplib.HTTP(self.host)
|
||||||
url = self.url
|
url = self.url
|
||||||
data = urllib.urlencode(record.__dict__)
|
data = urllib.urlencode(self.mapLogRecord(record))
|
||||||
if self.method == "GET":
|
if self.method == "GET":
|
||||||
if (string.find(url, '?') >= 0):
|
if (string.find(url, '?') >= 0):
|
||||||
sep = '&'
|
sep = '&'
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue