Closes #20918: Added handling for exceptions during fallback output of logging exceptions.

This commit is contained in:
Vinay Sajip 2014-03-14 13:42:19 +00:00
parent a0b9eeb66d
commit 698abe75d4

View file

@ -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 # 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,
@ -18,7 +18,7 @@
Logging package for Python. Based on PEP 282 and comments thereto in Logging package for Python. Based on PEP 282 and comments thereto in
comp.lang.python. 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! To use, simply 'import logging' and log away!
""" """
@ -42,6 +42,7 @@ except ImportError: #pragma: no cover
__author__ = "Vinay Sajip <vinay_sajip@red-dove.com>" __author__ = "Vinay Sajip <vinay_sajip@red-dove.com>"
__status__ = "production" __status__ = "production"
# The following module attributes are no longer updated.
__version__ = "0.5.1.2" __version__ = "0.5.1.2"
__date__ = "07 February 2010" __date__ = "07 February 2010"
@ -902,8 +903,15 @@ class Handler(Filterer):
sys.stderr.write('Logged from file %s, line %s\n' % ( sys.stderr.write('Logged from file %s, line %s\n' % (
record.filename, record.lineno)) record.filename, record.lineno))
# Issue 18671: output logging message and arguments # Issue 18671: output logging message and arguments
sys.stderr.write('Message: %r\n' try:
'Arguments: %s\n' % (record.msg, record.args)) 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 except OSError: #pragma: no cover
pass # see issue 5971 pass # see issue 5971
finally: finally: