implement utils.print_exception()

Previously we used logging.error(e) and traceback.print_exc()
to output error stack trace. The problem is, we want to
output the stack trace only when verbose > 0. The if statement
scattered around the code. So we replaced them with the new
utils.print_exception() call.
This commit is contained in:
clowwindy 2015-02-10 17:16:24 +08:00
parent 48ddc1714b
commit cb7062e1c1
8 changed files with 32 additions and 29 deletions

View file

@ -28,6 +28,8 @@ import errno
import logging
from collections import defaultdict
from shadowsocks import utils
__all__ = ['EventLoop', 'POLL_NULL', 'POLL_IN', 'POLL_OUT', 'POLL_ERR',
'POLL_HUP', 'POLL_NVAL', 'EVENT_NAMES']
@ -223,9 +225,7 @@ class EventLoop(object):
try:
handler(events)
except (OSError, IOError) as e:
logging.error(e)
import traceback
traceback.print_exc()
utils.print_exception(e)
if self._handlers_to_remove:
for handler in self._handlers_to_remove:
self._handlers.remove(handler)