[Python-checkins] cpython: Closes #20918: Added handling for exceptions during fallback output of logging

vinay.sajip python-checkins at python.org
Fri Mar 14 14:42:31 CET 2014


http://hg.python.org/cpython/rev/73c2a70e4b35
changeset:   89652:73c2a70e4b35
user:        Vinay Sajip <vinay_sajip at yahoo.co.uk>
date:        Fri Mar 14 13:42:19 2014 +0000
summary:
  Closes #20918: Added handling for exceptions during fallback output of logging exceptions.

files:
  Lib/logging/__init__.py |  16 ++++++++++++----
  1 files changed, 12 insertions(+), 4 deletions(-)


diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2001-2013 by Vinay Sajip. All Rights Reserved.
+# Copyright 2001-2014 by Vinay Sajip. All Rights Reserved.
 #
 # Permission to use, copy, modify, and distribute this software and its
 # documentation for any purpose and without fee is hereby granted,
@@ -18,7 +18,7 @@
 Logging package for Python. Based on PEP 282 and comments thereto in
 comp.lang.python.
 
-Copyright (C) 2001-2013 Vinay Sajip. All Rights Reserved.
+Copyright (C) 2001-2014 Vinay Sajip. All Rights Reserved.
 
 To use, simply 'import logging' and log away!
 """
@@ -42,6 +42,7 @@
 
 __author__  = "Vinay Sajip <vinay_sajip at red-dove.com>"
 __status__  = "production"
+# The following module attributes are no longer updated.
 __version__ = "0.5.1.2"
 __date__    = "07 February 2010"
 
@@ -902,8 +903,15 @@
                     sys.stderr.write('Logged from file %s, line %s\n' % (
                                      record.filename, record.lineno))
                 # Issue 18671: output logging message and arguments
-                sys.stderr.write('Message: %r\n'
-                                 'Arguments: %s\n' % (record.msg, record.args))
+                try:
+                    sys.stderr.write('Message: %r\n'
+                                     'Arguments: %s\n' % (record.msg,
+                                                          record.args))
+                except Exception:
+                    sys.stderr.write('Unable to print the message and arguments'
+                                     ' - possible formatting error.\nUse the'
+                                     ' traceback above to help find the error.\n'
+                                    )
             except OSError: #pragma: no cover
                 pass    # see issue 5971
             finally:

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list