3030from threading import Thread
3131from typing import Dict , List , Tuple
3232
33+ _custom_logger : logging .Logger = None
34+
35+
36+ def set_custom_logger (logger : logging .Logger ) -> None :
37+ assert isinstance (logger , logging .Logger )
38+ global _custom_logger
39+ _custom_logger = logger
40+
3341
3442class LazyCalledLogger (logging .Logger ):
3543
@@ -90,7 +98,10 @@ class CachingLogger(LazyCalledLogger):
9098 logger_thread : LazyCalledLoggerThread = LazyCalledLoggerThread ()
9199
92100 def callHandlers (self , record ):
93- CachingLogger .logger_thread .call_logger_handler (self , record )
101+ if _custom_logger is not None :
102+ _custom_logger .callHandlers (record )
103+ else :
104+ CachingLogger .logger_thread .call_logger_handler (self , record )
94105
95106
96107class LoggerFactory :
@@ -168,8 +179,6 @@ def get_logger(self, tag: str = "pythone-simple-http-server") -> logging.Logger:
168179
169180_logger_factories : Dict [str , LoggerFactory ] = {}
170181
171- _custom_logger : logging .Logger = None
172-
173182
174183def get_logger_factory (tag : str = "" ) -> LoggerFactory :
175184 if not tag :
@@ -196,13 +205,4 @@ def set_handler(handler: logging.Handler) -> None:
196205
197206
198207def get_logger (tag : str = "python-eureka-client" ) -> logging .Logger :
199- global _custom_logger
200- if _custom_logger :
201- return _custom_logger
202208 return _default_logger_factory .get_logger (tag )
203-
204-
205- def set_custom_logger (logger : logging .Logger ) -> None :
206- assert isinstance (logger , logging .Logger )
207- global _custom_logger
208- _custom_logger = logger
0 commit comments