Commit db81c4c6 authored by Vinay Sajip's avatar Vinay Sajip

Merged revisions 77967,77969,78033,78055,78081,78085,78108 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r77967 | vinay.sajip | 2010-02-04 18:48:53 +0000 (Thu, 04 Feb 2010) | 1 line

  Logging: Implemented PEP 391.
........
  r77969 | vinay.sajip | 2010-02-04 20:18:28 +0000 (Thu, 04 Feb 2010) | 1 line

  Removed spurious print statement.
........
  r78033 | benjamin.peterson | 2010-02-06 22:08:15 +0000 (Sat, 06 Feb 2010) | 1 line

  make waiting for the server to start robust
........
  r78055 | vinay.sajip | 2010-02-07 01:37:08 +0000 (Sun, 07 Feb 2010) | 1 line

  Issue #7868: logging: added loggerClass attribute to Manager.
........
  r78081 | vinay.sajip | 2010-02-07 12:56:54 +0000 (Sun, 07 Feb 2010) | 1 line

  Issue #7869: logging: improved format-time diagnostics and removed some 1.5.2 support code.
........
  r78085 | vinay.sajip | 2010-02-07 13:06:51 +0000 (Sun, 07 Feb 2010) | 1 line

  logging: Removed some more 1.5.2 support code.
........
  r78108 | vinay.sajip | 2010-02-08 21:18:15 +0000 (Mon, 08 Feb 2010) | 1 line

  logging: gingerly re-enabling skipped tests after improving thread sync code in configurator.
........
parent 6e796a13
# Copyright 2001-2009 by Vinay Sajip. All Rights Reserved. # Copyright 2001-2010 by Vinay Sajip. All Rights Reserved.
# #
# Permission to use, copy, modify, and distribute this software and its # Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted, # documentation for any purpose and without fee is hereby granted,
...@@ -46,8 +46,8 @@ except ImportError: ...@@ -46,8 +46,8 @@ except ImportError:
__author__ = "Vinay Sajip <vinay_sajip@red-dove.com>" __author__ = "Vinay Sajip <vinay_sajip@red-dove.com>"
__status__ = "production" __status__ = "production"
__version__ = "0.5.1.1" __version__ = "0.5.1.2"
__date__ = "25 November 2009" __date__ = "07 February 2010"
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Miscellaneous module data # Miscellaneous module data
...@@ -767,7 +767,10 @@ class Handler(Filterer): ...@@ -767,7 +767,10 @@ class Handler(Filterer):
if raiseExceptions: if raiseExceptions:
ei = sys.exc_info() ei = sys.exc_info()
try: try:
traceback.print_exception(ei[0], ei[1], ei[2], None, sys.stderr) traceback.print_exception(ei[0], ei[1], ei[2],
None, sys.stderr)
sys.stderr.write('Logged from file %s, line %s\n' % (
record.filename, record.lineno))
except IOError: except IOError:
pass # see issue 5971 pass # see issue 5971
finally: finally:
...@@ -960,6 +963,7 @@ class Manager(object): ...@@ -960,6 +963,7 @@ class Manager(object):
self.disable = 0 self.disable = 0
self.emittedNoHandlerWarning = 0 self.emittedNoHandlerWarning = 0
self.loggerDict = {} self.loggerDict = {}
self.loggerClass = None
def getLogger(self, name): def getLogger(self, name):
""" """
...@@ -979,13 +983,13 @@ class Manager(object): ...@@ -979,13 +983,13 @@ class Manager(object):
rv = self.loggerDict[name] rv = self.loggerDict[name]
if isinstance(rv, PlaceHolder): if isinstance(rv, PlaceHolder):
ph = rv ph = rv
rv = _loggerClass(name) rv = (self.loggerClass or _loggerClass)(name)
rv.manager = self rv.manager = self
self.loggerDict[name] = rv self.loggerDict[name] = rv
self._fixupChildren(ph, rv) self._fixupChildren(ph, rv)
self._fixupParents(rv) self._fixupParents(rv)
else: else:
rv = _loggerClass(name) rv = (self.loggerClass or _loggerClass)(name)
rv.manager = self rv.manager = self
self.loggerDict[name] = rv self.loggerDict[name] = rv
self._fixupParents(rv) self._fixupParents(rv)
...@@ -993,6 +997,16 @@ class Manager(object): ...@@ -993,6 +997,16 @@ class Manager(object):
_releaseLock() _releaseLock()
return rv return rv
def setLoggerClass(self, klass):
"""
Set the class to be used when instantiating a logger with this Manager.
"""
if klass != Logger:
if not issubclass(klass, Logger):
raise TypeError("logger not derived from logging.Logger: "
+ klass.__name__)
self.loggerClass = klass
def _fixupParents(self, alogger): def _fixupParents(self, alogger):
""" """
Ensure that there are either loggers or placeholders all the way Ensure that there are either loggers or placeholders all the way
......
This diff is collapsed.
# Copyright 2001-2009 by Vinay Sajip. All Rights Reserved. # Copyright 2001-2010 by Vinay Sajip. All Rights Reserved.
# #
# Permission to use, copy, modify, and distribute this software and its # Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted, # documentation for any purpose and without fee is hereby granted,
...@@ -19,7 +19,7 @@ Additional handlers for the logging package for Python. The core package is ...@@ -19,7 +19,7 @@ Additional handlers for the logging package for Python. The core package is
based on PEP 282 and comments thereto in comp.lang.python, and influenced by based on PEP 282 and comments thereto in comp.lang.python, and influenced by
Apache's log4j system. Apache's log4j system.
Copyright (C) 2001-2009 Vinay Sajip. All Rights Reserved. Copyright (C) 2001-2010 Vinay Sajip. All Rights Reserved.
To use, simply 'import logging.handlers' and log away! To use, simply 'import logging.handlers' and log away!
""" """
...@@ -844,24 +844,6 @@ class SMTPHandler(logging.Handler): ...@@ -844,24 +844,6 @@ 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.
Needed for Python 1.5.2 (no email package available)
"""
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.
...@@ -870,10 +852,7 @@ class SMTPHandler(logging.Handler): ...@@ -870,10 +852,7 @@ class SMTPHandler(logging.Handler):
""" """
try: try:
import smtplib import smtplib
try: from email.utils import formatdate
from email.utils import formatdate
except ImportError:
formatdate = self.date_time
port = self.mailport port = self.mailport
if not port: if not port:
port = smtplib.SMTP_PORT port = smtplib.SMTP_PORT
......
This diff is collapsed.
...@@ -260,6 +260,12 @@ C-API ...@@ -260,6 +260,12 @@ C-API
Library Library
------- -------
- Issue #7869: logging: improved diagnostic for format-time errors.
- Issue #7868: logging: added loggerClass attribute to Manager.
- logging: Implemented PEP 391.
- Issue #1537721: Add a writeheader() method to csv.DictWriter. - Issue #1537721: Add a writeheader() method to csv.DictWriter.
- Issue #7959: ctypes callback functions are now registered correctly - Issue #7959: ctypes callback functions are now registered correctly
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment