aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/client.py6
-rw-r--r--docs/api.rst16
-rw-r--r--docs/logging.rst9
3 files changed, 14 insertions, 17 deletions
diff --git a/discord/client.py b/discord/client.py
index c2a13618..f68be4a6 100644
--- a/discord/client.py
+++ b/discord/client.py
@@ -24,6 +24,8 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
"""
+from __future__ import print_function
+
from . import endpoints
from .errors import InvalidEventName, InvalidDestination, GatewayNotFound
from .user import User
@@ -34,6 +36,7 @@ from .message import Message
from . import utils
from .invite import Invite
+import traceback
import requests
import json, re, time, copy
from collections import deque
@@ -482,7 +485,8 @@ class Client(object):
raise InvalidDestination('Destination must be Channel, PrivateChannel, User, or str')
def on_error(self, event_method, *args, **kwargs):
- logging.exception('Ignoring exception in {}'.format(event_method))
+ print('Ignoring exception in {}'.format(event_method), file=sys.stderr)
+ traceback.print_exc()
# Compatibility shim
def __getattr__(self, name):
diff --git a/docs/api.rst b/docs/api.rst
index 0a4fcec8..eb59ca27 100644
--- a/docs/api.rst
+++ b/docs/api.rst
@@ -39,7 +39,7 @@ overriding the specific events. For example: ::
If an event handler raises an exception, :func:`on_error` will be called
-to handle it, which defaults to log a traceback and ignore the exception.
+to handle it, which defaults to print a traceback and ignore the exception.
.. versionadded:: 0.7.0
Subclassing to listen to events.
@@ -53,16 +53,10 @@ to handle it, which defaults to log a traceback and ignore the exception.
.. function:: on_error(event, \*args, \*\*kwargs)
Usually when an event raises an uncaught exception, a traceback is
- logged and the exception is ignored. If you want to change this
- behaviour and handle the exception for whatever reason yourself,
- this event can be overridden. Which, when done, will supress the
- default logging done.
-
- .. note::
-
- The default ``on_error`` handler logs exception to the root logger
- instead of a logger under the discord namespace. This is to ensure
- that exceptions are output somewhere if logging is not configured.
+ printed to stderr and the exception is ignored. If you want to
+ change this behaviour and handle the exception for whatever reason
+ yourself, this event can be overridden. Which, when done, will
+ supress the default action of printing the traceback.
The information of the exception rasied and the exception itself can
be retreived with a standard call to ``sys.exc_info()``.
diff --git a/docs/logging.rst b/docs/logging.rst
index 6490f9fa..418453b3 100644
--- a/docs/logging.rst
+++ b/docs/logging.rst
@@ -4,11 +4,10 @@
Setting Up Logging
===================
-*discord.py* logs errors, exceptions, and debug information via the
-`logging`_ python module. It is strongly recommended that the logging
-module is configured, as no errors or warnings will be output at all if
-it is not set up. Configuration of the ``logging`` module can be as
-simple as::
+*discord.py* logs errors and debug information via the `logging`_ python
+module. It is strongly recommended that the logging module is
+configured, as no errors or warnings will be output if it is not set up.
+Configuration of the ``logging`` module can be as simple as::
import logging