Skip to content

Commit b7730ac

Browse files
committed
Set generic loggers on base rpc provider classes:
- We rely on the fact that providers have loggers attached to them throughout our codebase. We should set generic loggers on the base RPC provider classes even though they are re-defined in their respective subclasses for more specificity. This ensures if a user defines their own provider classes, it won't break based on the lack of a logger.
1 parent 4883a47 commit b7730ac

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

web3/providers/async_base.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import asyncio
22
import itertools
3+
import logging
34
from typing import (
45
TYPE_CHECKING,
56
Any,
@@ -59,6 +60,10 @@
5960

6061

6162
class AsyncBaseProvider:
63+
# Set generic logger for the provider. Override in subclasses for more specificity.
64+
logger: logging.Logger = logging.getLogger(
65+
"web3.providers.async_base.AsyncBaseProvider"
66+
)
6267
_request_func_cache: Tuple[
6368
Tuple[Middleware, ...], Callable[..., Coroutine[Any, Any, RPCResponse]]
6469
] = (None, None)
@@ -159,6 +164,8 @@ async def disconnect(self) -> None:
159164

160165

161166
class AsyncJSONBaseProvider(AsyncBaseProvider):
167+
logger = logging.getLogger("web3.providers.async_base.AsyncJSONBaseProvider")
168+
162169
def __init__(self, **kwargs: Any) -> None:
163170
self.request_counter = itertools.count()
164171
super().__init__(**kwargs)

web3/providers/base.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import itertools
2+
import logging
23
import threading
34
from typing import (
45
TYPE_CHECKING,
@@ -46,6 +47,8 @@
4647

4748

4849
class BaseProvider:
50+
# Set generic logger for the provider. Override in subclasses for more specificity.
51+
logger: logging.Logger = logging.getLogger("web3.providers.base.BaseProvider")
4952
# a tuple of (middleware, request_func)
5053
_request_func_cache: Tuple[Tuple[Middleware, ...], Callable[..., RPCResponse]] = (
5154
None,
@@ -104,6 +107,8 @@ def is_connected(self, show_traceback: bool = False) -> bool:
104107

105108

106109
class JSONBaseProvider(BaseProvider):
110+
logger = logging.getLogger("web3.providers.base.JSONBaseProvider")
111+
107112
_is_batching: bool = False
108113
_batch_request_func_cache: Tuple[
109114
Tuple[Middleware, ...], Callable[..., List[RPCResponse]]

0 commit comments

Comments
 (0)