@@ -46,7 +46,7 @@ class DatabaseSessionsManager(object):
4646
4747 def __init__ (self , database , pool ):
4848 self ._database = database
49- self ._logger = database .logger
49+ self ._logger = None # Lazy initialization to avoid triggering database.logger during __init__
5050
5151 # The session pool manages non-multiplexed sessions, and
5252 # will only be used if multiplexed sessions are not enabled.
@@ -64,6 +64,13 @@ def __init__(self, database, pool):
6464 self ._multiplexed_session_lock = threading .Lock ()
6565 self ._is_multiplexed_sessions_disabled_event = threading .Event ()
6666
67+ @property
68+ def logger (self ):
69+ """Get the logger, initializing it lazily to avoid triggering database.logger during __init__."""
70+ if self ._logger is None :
71+ self ._logger = self ._database .logger
72+ return self ._logger
73+
6774 def get_session (self , transaction_type : TransactionType ) -> Session :
6875 """Returns a session for the given transaction type from the database session manager.
6976 :rtype: :class:`~google.cloud.spanner_v1.session.Session`
@@ -157,7 +164,7 @@ def _build_multiplexed_session(self) -> Session:
157164
158165 session .create ()
159166
160- self ._logger .info ("Created multiplexed session." )
167+ self .logger .info ("Created multiplexed session." )
161168
162169 return session
163170
@@ -169,12 +176,12 @@ def _disable_multiplexed_sessions(self) -> None:
169176 self ._multiplexed_session .delete ()
170177 except Exception as exc : # noqa: BLE001
171178 # Keep the client alive; best-effort cleanup.
172- self ._logger .warning (
179+ self .logger .warning (
173180 "Failed to delete multiplexed session during disable: %s" , exc
174181 )
175182 self ._multiplexed_session = None
176183 self ._is_multiplexed_sessions_disabled_event .set ()
177- self ._database .session_options .disable_multiplexed (self ._logger )
184+ self ._database .session_options .disable_multiplexed (self .logger )
178185
179186 def _build_maintenance_thread (self ) -> threading .Thread :
180187 """Builds and returns a multiplexed session maintenance thread for
@@ -241,7 +248,7 @@ def _maintain_multiplexed_session(session_manager_ref) -> None:
241248 try :
242249 session_manager ._multiplexed_session .delete ()
243250 except Exception as exc : # noqa: BLE001
244- session_manager ._logger .warning (
251+ session_manager .logger .warning (
245252 "Failed to delete multiplexed session during refresh: %s" , exc
246253 )
247254
0 commit comments