This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2009年05月08日 20:55 by ryles, last changed 2022年04月11日 14:56 by admin. This issue is now closed.
| Messages (2) | |||
|---|---|---|---|
| msg87469 - (view) | Author: Ryan Leslie (ryles) | Date: 2009年05月08日 20:55 | |
When using the logging package, if a StreamHandler is configured with stderr and stderr is redirected to a pipe which no longer has readers, then StreamHandler.emit() will result in an IOError for "Broken pipe". The exception will be handled in logging.Handler.handleError(), which by default will call traceback.print_exception() with file=sys.stderr. This will cause in a second IOError exception which will not be caught within the logging code. Unless the user placed their log calls such as logging.info() in a try/except block (unlikely), the end result is termination of the process. While the logging code itself is certainly not the cause of the underlying problem, it does seem that the intent of the default handleError() was to eat exceptions, and possibly print them, without disturbing the application code. As the docstring correctly points out, the application can probably survive without the logging. To work around this issue without writing a custom handler, raiseExceptions can be set to false. But then the user would miss log trace when other types of errors not affecting stderr occurred. That is, I think handleError() does the right thing in trying to print the error, but suggest that if the print results in an IOError (or certain types of IOError), then it should be ignored, or optionally ignorable. |
|||
| msg87492 - (view) | Author: Vinay Sajip (vinay.sajip) * (Python committer) | Date: 2009年05月09日 12:17 | |
Fix checked into trunk and release26-maint. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:56:48 | admin | set | github: 50221 |
| 2009年05月09日 12:17:07 | vinay.sajip | set | status: open -> closed resolution: fixed messages: + msg87492 |
| 2009年05月08日 21:08:40 | benjamin.peterson | set | assignee: vinay.sajip nosy: + vinay.sajip |
| 2009年05月08日 20:55:53 | ryles | create | |