diff options
author | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2010-02-07 12:56:54 (GMT) |
---|---|---|
committer | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2010-02-07 12:56:54 (GMT) |
commit | 64e8b970f9e7364ae62bd726cea6d6d7c60ecb34 (patch) | |
tree | de83136f18a2df497c30f43304cf7ae027545296 | |
parent | b86d3fa43c0cb29c7c018c6a1e926163d7ebacf4 (diff) | |
download | cpython-64e8b970f9e7364ae62bd726cea6d6d7c60ecb34.zip cpython-64e8b970f9e7364ae62bd726cea6d6d7c60ecb34.tar.gz cpython-64e8b970f9e7364ae62bd726cea6d6d7c60ecb34.tar.bz2 |
Issue #7869: logging: improved format-time diagnostics and removed some 1.5.2 support code.
-rw-r--r-- | Lib/logging/__init__.py | 18 | ||||
-rw-r--r-- | Lib/logging/config.py | 6 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
3 files changed, 9 insertions, 17 deletions
diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index 5c727b0..b5c48d3 100644 --- a/Lib/logging/__init__.py +++ b/Lib/logging/__init__.py @@ -769,7 +769,10 @@ class Handler(Filterer): if raiseExceptions: ei = sys.exc_info() 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: pass # see issue 5971 finally: @@ -1572,17 +1575,8 @@ def shutdown(handlerList=_handlerList): #else, swallow #Let's try and shutdown automatically on application exit... -try: - import atexit - atexit.register(shutdown) -except ImportError: # for Python versions < 2.0 - def exithook(status, old_exit=sys.exit): - try: - shutdown() - finally: - old_exit(status) - - sys.exit = exithook +import atexit +atexit.register(shutdown) # Null handler diff --git a/Lib/logging/config.py b/Lib/logging/config.py index 1145e71..fdf4397 100644 --- a/Lib/logging/config.py +++ b/Lib/logging/config.py @@ -58,15 +58,11 @@ def fileConfig(fname, defaults=None, disable_existing_loggers=True): the ability to select from various pre-canned configurations (if the developer provides a mechanism to present the choices and load the chosen configuration). - In versions of ConfigParser which have the readfp method [typically - shipped in 2.x versions of Python], you can pass in a file-like object - rather than a filename, in which case the file-like object will be read - using readfp. """ import ConfigParser cp = ConfigParser.ConfigParser(defaults) - if hasattr(cp, 'readfp') and hasattr(fname, 'readline'): + if hasattr(fname, 'readline'): cp.readfp(fname) else: cp.read(fname) @@ -75,6 +75,8 @@ Core and Builtins Library ------- +- Issue #7869: logging: improved diagnostic for format-time errors. + - Issue #7868: logging: added loggerClass attribute to Manager. - Issue #7851: logging: clarification on logging configuration files. |