From 00eb9b45ca16f0ab950995813627ddabc36c0455 Mon Sep 17 00:00:00 2001 From: Seaswimmer <102361830+cswimr@users.noreply.github.com> Date: Thu, 31 Oct 2024 15:57:43 -0400 Subject: [PATCH] Rework the api_client logger (#83) * fix Pydactl overriding all other python loggers' logging levels * Update api_client.py * Update api_client.py * Update api_client.py --------- Co-authored-by: Seaswimmer <102361830+SeaswimmerTheFsh@users.noreply.github.com> --- pydactyl/api_client.py | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/pydactyl/api_client.py b/pydactyl/api_client.py index 0693804..0bf7b2d 100644 --- a/pydactyl/api_client.py +++ b/pydactyl/api_client.py @@ -21,18 +21,10 @@ def http_adapter(backoff_factor, retries, extra_retry_codes): return adapter -def set_logger(debug): - """Configure debug logging if requested.""" - if debug: - level = logging.DEBUG - else: - level = logging.ERROR - - logging.basicConfig() - logging.getLogger().setLevel(level) +def get_logger() -> logging.Logger: + """Get the default logger.""" logger = logging.getLogger(__name__) - logger.setLevel(level) - logger.propagate = True + return logger class PterodactylClient(object): @@ -42,7 +34,7 @@ class PterodactylClient(object): """ def __init__(self, url=None, api_key=None, backoff_factor=1, retries=3, - extra_retry_codes=[], debug=False): + extra_retry_codes=[], logger: logging.Logger = get_logger()): """Initialize a Pterodactyl class instance. Args: @@ -52,7 +44,7 @@ def __init__(self, url=None, api_key=None, backoff_factor=1, retries=3, retries(int): maximum number of retries per call extra_retry_codes(iter): list of additional integer HTTP status codes to retry on, e.g. [502, 504] - debug(bool): enable debug logging for requests + logger(logging.Logger): the logger that Pydactyl will use """ if not url: raise ClientConfigError( @@ -64,6 +56,7 @@ def __init__(self, url=None, api_key=None, backoff_factor=1, retries=3, self._api_key = api_key self._url = url + self._logger = logger self._session = requests.Session() adapter = http_adapter(backoff_factor=backoff_factor, @@ -72,8 +65,6 @@ def __init__(self, url=None, api_key=None, backoff_factor=1, retries=3, self._session.mount('https://', adapter) self._session.mount('http://', adapter) - set_logger(debug) - self._client = None self._locations = None self._nests = None