Skip to content

Commit 64eb1fb

Browse files
committed
Rename get_logger to new_logger
1 parent 010d422 commit 64eb1fb

File tree

6 files changed

+19
-17
lines changed

6 files changed

+19
-17
lines changed

src/lmstudio/_logging.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,5 +147,7 @@ def critical(
147147
self._log(logging.CRITICAL, msg, exc_info, stack_info, stacklevel, event_dict)
148148

149149

150-
def get_logger(name: str, /, *args: Any, **kwds: Any) -> StructuredLogger:
150+
def new_logger(name: str, /, *args: Any, **kwds: Any) -> StructuredLogger:
151+
# Loggers contain runtime state, so they are NOT shared based on their names
152+
# Function name reflects this to avoid false expectations from stdlib logging
151153
return StructuredLogger(logging.getLogger(name, *args, **kwds))

src/lmstudio/_ws_impl.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
from .schemas import DictObject
3333
from .json_api import LMStudioWebsocket, LMStudioWebsocketError
3434

35-
from ._logging import get_logger, LogEventContext
35+
from ._logging import new_logger, LogEventContext
3636

3737

3838
# Allow the core client websocket management to be shared across all SDK interaction APIs
@@ -281,7 +281,7 @@ def call_in_background(self, func: Callable[[], Any]) -> None:
281281
class AsyncWebsocketThread(BackgroundThread):
282282
def __init__(self, log_context: LogEventContext | None = None) -> None:
283283
super().__init__(task_target=self._log_thread_execution)
284-
self._logger = logger = get_logger(type(self).__name__)
284+
self._logger = logger = new_logger(type(self).__name__)
285285
logger.update_context(log_context, thread_id=self.name)
286286

287287
async def _log_thread_execution(self) -> None:
@@ -322,8 +322,8 @@ def __init__(
322322
self._ws_disconnected = asyncio.Event()
323323
self._rx_task: asyncio.Task[None] | None = None
324324
self._enqueue_message = enqueue_message
325-
self._logger = get_logger(type(self).__name__)
326-
self._logger = logger = get_logger(type(self).__name__)
325+
self._logger = new_logger(type(self).__name__)
326+
self._logger = logger = new_logger(type(self).__name__)
327327
logger.update_context(log_context)
328328

329329
async def connect(self) -> bool:

src/lmstudio/async_api.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@
103103
ModelCompatibilityType,
104104
)
105105

106-
from ._logging import get_logger, LogEventContext
106+
from ._logging import new_logger, LogEventContext
107107

108108
# Only the async API itself is published from
109109
# this module. Anything needed for type hints
@@ -192,7 +192,7 @@ def __init__(
192192
"""Initialize asynchronous remote procedure call."""
193193
self._rx_queue = rx_queue
194194
self._rpc = RemoteCallHandler(call_id, log_context, notice_prefix)
195-
self._logger = logger = get_logger(type(self).__name__)
195+
self._logger = logger = new_logger(type(self).__name__)
196196
logger.update_context(log_context, call_id=call_id)
197197

198198
def get_rpc_message(

src/lmstudio/json_api.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@
117117
RepositoryRpcSearchModelsParameter,
118118
SerializedLMSExtendedError,
119119
)
120-
from ._logging import get_logger, LogEventContext, StructuredLogger
120+
from ._logging import new_logger, LogEventContext, StructuredLogger
121121

122122
# The sync and async modules publish the main SDK client API.
123123
# From here, we publish everything that might be needed
@@ -661,7 +661,7 @@ def __init__(
661661
# Channel processing state tracking
662662
self._is_finished = False
663663
self._result: T | None = None
664-
self._logger = logger = get_logger(type(self).__name__)
664+
self._logger = logger = new_logger(type(self).__name__)
665665
logger.update_context(endpoint=self._API_ENDPOINT)
666666

667667
@property
@@ -1602,7 +1602,7 @@ def __init__(
16021602
self._is_finished = False
16031603
self._channel_id = channel_id
16041604
self._endpoint = endpoint
1605-
self._logger = logger = get_logger(type(self).__name__)
1605+
self._logger = logger = new_logger(type(self).__name__)
16061606
logger.update_context(log_context, channel_id=channel_id)
16071607

16081608
@property
@@ -1681,7 +1681,7 @@ def __init__(
16811681
) -> None:
16821682
"""Initialize websocket remote procedure call."""
16831683
self._call_id = call_id
1684-
self._logger = logger = get_logger(type(self).__name__)
1684+
self._logger = logger = new_logger(type(self).__name__)
16851685
logger.update_context(log_context, call_id=call_id)
16861686
self._notice_prefix = notice_prefix
16871687

@@ -1776,7 +1776,7 @@ def __init__(
17761776
"""Initialize I/O independent websocket details."""
17771777
self._ws_url = ws_url
17781778
self._auth_details = auth_details
1779-
self._logger = logger = get_logger(type(self).__name__)
1779+
self._logger = logger = new_logger(type(self).__name__)
17801780
logger.update_context(log_context, ws_url=ws_url)
17811781
self._mux = MultiplexingManager(logger)
17821782
# Subclasses handle actually creating a websocket instance
@@ -2042,7 +2042,7 @@ def __init__(self, model_identifier: str, session: TSession) -> None:
20422042
"""Initialize the LM Studio model reference."""
20432043
self.identifier = model_identifier
20442044
self._session = session
2045-
self._logger = logger = get_logger(type(self).__name__)
2045+
self._logger = logger = new_logger(type(self).__name__)
20462046
logger.update_context(model_identifier=model_identifier)
20472047

20482048
def __repr__(self) -> str:

src/lmstudio/sync_api.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@
121121
ModelCompatibilityType,
122122
)
123123

124-
from ._logging import get_logger, LogEventContext
124+
from ._logging import new_logger, LogEventContext
125125

126126
# Only the sync API itself is published from
127127
# this module. Anything needed for type hints
@@ -218,7 +218,7 @@ def __init__(
218218
"""Initialize synchronous remote procedure call."""
219219
self._rx_queue = rx_queue
220220
self._rpc = RemoteCallHandler(call_id, log_context, notice_prefix)
221-
self._logger = logger = get_logger(type(self).__name__)
221+
self._logger = logger = new_logger(type(self).__name__)
222222
logger.update_context(log_context, call_id=call_id)
223223

224224
def get_rpc_message(

tests/test_traceback_filtering.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from lmstudio import LMStudioError
77
from lmstudio.sdk_api import sdk_callback_invocation
8-
from lmstudio._logging import get_logger
8+
from lmstudio._logging import new_logger
99

1010
from .support import check_sdk_error, check_unfiltered_error
1111
from .support.lmstudio import (
@@ -65,7 +65,7 @@ async def test_async_api_truncation_internal_error(public_api: TestCoro) -> None
6565

6666

6767
def test_callback_invocation(caplog: LogCap) -> None:
68-
logger = get_logger(__name__)
68+
logger = new_logger(__name__)
6969
exc_to_raise = Exception("This will be raised")
7070
with sdk_callback_invocation("Callback test", logger):
7171
raise exc_to_raise

0 commit comments

Comments
 (0)