@@ -53,6 +53,10 @@ def get_logger(log_file: Optional[str] = None,
5353 logger = logging .getLogger (logger_name )
5454 logger .propagate = False
5555 if logger_name in init_loggers :
56+ # Update log level dynamically to respect current LOG_LEVEL env var
57+ logger .setLevel (log_level )
58+ for handler in logger .handlers :
59+ handler .setLevel (log_level )
5660 add_file_handler_if_needed (logger , log_file , file_mode , log_level )
5761 return logger
5862
@@ -124,3 +128,28 @@ def add_file_handler_if_needed(logger, log_file, file_mode, log_level):
124128 file_handler .setFormatter (logger_format )
125129 file_handler .setLevel (log_level )
126130 logger .addHandler (file_handler )
131+
132+
133+ def refresh_log_level (target_logger = None ):
134+ """
135+ Refresh logger level from LOG_LEVEL environment variable.
136+
137+ This is useful when LOG_LEVEL is changed after the logger was initialized.
138+
139+ Args:
140+ target_logger: Logger to refresh. If None, uses the default logger.
141+
142+ Returns:
143+ The new log level (as int).
144+ """
145+ if target_logger is None :
146+ target_logger = logger
147+
148+ log_level_str = os .getenv ('LOG_LEVEL' , 'INFO' ).upper ()
149+ log_level_int = getattr (logging , log_level_str , logging .INFO )
150+
151+ target_logger .setLevel (log_level_int )
152+ for handler in target_logger .handlers :
153+ handler .setLevel (log_level_int )
154+
155+ return log_level_int
0 commit comments