mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-02-03 21:24:35 +03:00
Remove _log_exc workaround and NullHandler
It was added back in bfc408b
probably due to a misunderstanding of
https://docs.python.org/3/howto/logging.html#configuring-logging-for-a-library.
The default behaviour of logging WARNING and above is good and
desirable (hiding unhandled exceptions in update handlers by default
was a big, accidental mistake). NullHandler is used to *prevent*
this good default, so it shouldn't be used in the first place.
This commit is contained in:
parent
9a0e030db8
commit
0997e3fa9f
|
@ -25,8 +25,7 @@ DEFAULT_PORT = 443
|
||||||
if typing.TYPE_CHECKING:
|
if typing.TYPE_CHECKING:
|
||||||
from .telegramclient import TelegramClient
|
from .telegramclient import TelegramClient
|
||||||
|
|
||||||
__default_log__ = logging.getLogger(__base_name__)
|
_base_log = logging.getLogger(__base_name__)
|
||||||
__default_log__.addHandler(logging.NullHandler())
|
|
||||||
|
|
||||||
|
|
||||||
# In seconds, how long to wait before disconnecting a exported sender.
|
# In seconds, how long to wait before disconnecting a exported sender.
|
||||||
|
@ -246,7 +245,7 @@ class TelegramBaseClient(abc.ABC):
|
||||||
if isinstance(base_logger, str):
|
if isinstance(base_logger, str):
|
||||||
base_logger = logging.getLogger(base_logger)
|
base_logger = logging.getLogger(base_logger)
|
||||||
elif not isinstance(base_logger, logging.Logger):
|
elif not isinstance(base_logger, logging.Logger):
|
||||||
base_logger = __default_log__
|
base_logger = _base_log
|
||||||
|
|
||||||
class _Loggers(dict):
|
class _Loggers(dict):
|
||||||
def __missing__(self, key):
|
def __missing__(self, key):
|
||||||
|
|
|
@ -284,16 +284,6 @@ class UpdateMethods:
|
||||||
|
|
||||||
# region Private methods
|
# region Private methods
|
||||||
|
|
||||||
def _log_exc(self: 'TelegramClient', msg, *args):
|
|
||||||
"""
|
|
||||||
Log an exception, using `stderr` if `logging` is not configured.
|
|
||||||
"""
|
|
||||||
if logging.root.hasHandlers():
|
|
||||||
self._log[__name__].exception(msg, *args)
|
|
||||||
else:
|
|
||||||
print('[ERROR/telethon]:', msg % args, file=sys.stderr)
|
|
||||||
traceback.print_exc()
|
|
||||||
|
|
||||||
# It is important to not make _handle_update async because we rely on
|
# It is important to not make _handle_update async because we rely on
|
||||||
# the order that the updates arrive in to update the pts and date to
|
# the order that the updates arrive in to update the pts and date to
|
||||||
# be always-increasing. There is also no need to make this async.
|
# be always-increasing. There is also no need to make this async.
|
||||||
|
@ -477,7 +467,7 @@ class UpdateMethods:
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
if not isinstance(e, asyncio.CancelledError) or self.is_connected():
|
if not isinstance(e, asyncio.CancelledError) or self.is_connected():
|
||||||
name = getattr(callback, '__name__', repr(callback))
|
name = getattr(callback, '__name__', repr(callback))
|
||||||
self._log_exc('Unhandled exception on %s', name)
|
self._log[__name__].exception('Unhandled exception on %s', name)
|
||||||
|
|
||||||
async def _dispatch_event(self: 'TelegramClient', event):
|
async def _dispatch_event(self: 'TelegramClient', event):
|
||||||
"""
|
"""
|
||||||
|
@ -518,7 +508,7 @@ class UpdateMethods:
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
if not isinstance(e, asyncio.CancelledError) or self.is_connected():
|
if not isinstance(e, asyncio.CancelledError) or self.is_connected():
|
||||||
name = getattr(callback, '__name__', repr(callback))
|
name = getattr(callback, '__name__', repr(callback))
|
||||||
self._log_exc('Unhandled exception on %s', name)
|
self._log[__name__].exception('Unhandled exception on %s', name)
|
||||||
|
|
||||||
async def _get_difference(self: 'TelegramClient', update, channel_id, pts_date):
|
async def _get_difference(self: 'TelegramClient', update, channel_id, pts_date):
|
||||||
"""
|
"""
|
||||||
|
@ -621,7 +611,8 @@ class UpdateMethods:
|
||||||
self._log[__name__].warning('Failed to get missed updates after '
|
self._log[__name__].warning('Failed to get missed updates after '
|
||||||
'reconnect: %r', e)
|
'reconnect: %r', e)
|
||||||
except Exception:
|
except Exception:
|
||||||
self._log_exc('Unhandled exception while getting update difference after reconnect')
|
self._log[__name__].exception(
|
||||||
|
'Unhandled exception while getting update difference after reconnect')
|
||||||
|
|
||||||
# endregion
|
# endregion
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user