22import os
33from google .cloud .logging .handlers import CloudLoggingHandler
44import google .cloud .logging
5-
5+ from google . cloud . logging_v2 import Client
66
77def get_env_logging_level ():
88 """
@@ -22,46 +22,71 @@ class Logger:
2222
2323 def __init__ (self , name : str ):
2424 self .logger = logging .getLogger (name )
25- self .logger .setLevel (get_env_logging_level ())
26- self .logger .handlers .clear ()
25+ # self.logger.setLevel(get_env_logging_level())
26+ # self.logger.handlers.clear()
2727
2828 # formatter = jsonlogger.JsonFormatter(
2929 # '%(asctime)s %(levelname)s %(name)s %(message)s'
3030 # )
31-
32- if not is_local_env ():
33- handler = logging .StreamHandler ()
34- else :
35- try :
36- client = google .cloud .logging .Client ()
37- client .setup_logging ()
38- self .logger .info ("GCP logging client initialized" )
39- handler = CloudLoggingHandler (client )
40- except Exception as e :
41- # fallback to stdout if cloud client fails
42- self .logger .error (f"GCP logging failed, using fallback: { e } " )
43- handler = logging .StreamHandler ()
31+ # logging.basicConfig(level=get_env_logging_level())
32+ # if not is_local_env():
33+ # handler = logging.StreamHandler()
34+ # else:
35+ # try:
36+ # client = google.cloud.logging.Client()
37+ # client.setup_logging()
38+ # # self.logger.info("GCP logging client initialized")
39+ # # handler = CloudLoggingHandler(client)
40+ # except Exception as e:
41+ # # fallback to stdout if cloud client fails
42+ # # self.logger.error(f"GCP logging failed, using fallback: {e}")
43+ # handler = logging.StreamHandler()
4444
4545 # handler.setFormatter(formatter)
46- self .logger .addHandler (handler )
46+ # self.logger.addHandler(handler)
4747
4848 # Also configure SQLAlchemy to use this logger
49- self .setup_sqlalchemy_logger (handler )
50- self .logger .info ("Logger initialized" )
49+ # self.setup_sqlalchemy_logger(handler)
50+ # self.logger.info("Logger initialized")
5151
52- def setup_sqlalchemy_logger (self , handler ):
53- sqlalchemy_loggers = [
54- "sqlalchemy.engine" ,
55- # "sqlalchemy.pool",
56- # "sqlalchemy.dialects.postgresql",
57- "sqlalchemy.engine.Engine" ,
58- ]
59- for logger_name in sqlalchemy_loggers :
60- logger = logging .getLogger (logger_name )
61- logger .setLevel (get_env_logging_level ())
62- logger .handlers .clear ()
63- logger .addHandler (handler )
64- logger .propagate = False
52+ @staticmethod
53+ def init_logger ():
54+ """
55+ Initializes the logger
56+ """
57+ logging .basicConfig (level = get_env_logging_level ())
58+ if is_local_env ():
59+ # Use the default logging handler
60+ logging .info ("Using default logging handler" )
61+ return
62+ try :
63+ client = google .cloud .logging .Client ()
64+ client .get_default_handler ()
65+ client .setup_logging ()
66+ logging .info ("GCP logging client initialized" )
67+ # return client
68+ except Exception as error :
69+ # This might happen when the GCP authorization credentials are not available.
70+ # Example, when running the tests locally
71+ logging .error (f"Error initializing the logger: { error } " )
72+ # return None
73+
74+ # def setup_sqlalchemy_logger(self, handler):
75+ # sqlalchemy_loggers = [
76+ # "sqlalchemy.engine",
77+ # # "sqlalchemy.pool",
78+ # # "sqlalchemy.dialects.postgresql",
79+ # "sqlalchemy.engine.Engine",
80+ # ]
81+ # for logger_name in sqlalchemy_loggers:
82+ # logger = logging.getLogger(logger_name)
83+ # logger.setLevel(get_env_logging_level())
84+ # logger.handlers.clear()
85+ # logger.addHandler(handler)
86+ # logger.propagate = False
6587
6688 def get_logger (self ):
6789 return self .logger
90+
91+ def new_logger (self ):
92+ logging .basicConfig (level = get_env_logging_level ())
0 commit comments