@@ -166,11 +166,24 @@ def format(self, record: logging.LogRecord) -> str:
166166 return formatter .format (record )
167167
168168
169+ def remove_excess_logs (
170+ log_file_dir : t .Optional [t .Union [str , Path ]] = None ,
171+ log_limit : int = c .DEFAULT_LOG_LIMIT ,
172+ ) -> None :
173+ if log_limit <= 0 :
174+ return
175+
176+ log_file_dir = log_file_dir or c .DEFAULT_LOG_FILE_DIR
177+ log_path_prefix = Path (log_file_dir ) / LOG_FILENAME_PREFIX
178+
179+ for path in list (sorted (glob .glob (f"{ log_path_prefix } *.log" ), reverse = True ))[log_limit :]:
180+ os .remove (path )
181+
182+
169183def configure_logging (
170184 force_debug : bool = False ,
171185 write_to_stdout : bool = False ,
172186 write_to_file : bool = True ,
173- log_limit : int = c .DEFAULT_LOG_LIMIT ,
174187 log_file_dir : t .Optional [t .Union [str , Path ]] = None ,
175188 ignore_warnings : bool = False ,
176189) -> None :
@@ -192,20 +205,18 @@ def configure_logging(
192205
193206 log_file_dir = log_file_dir or c .DEFAULT_LOG_FILE_DIR
194207 log_path_prefix = Path (log_file_dir ) / LOG_FILENAME_PREFIX
208+
195209 if write_to_file :
196210 os .makedirs (str (log_file_dir ), exist_ok = True )
197211 filename = f"{ log_path_prefix } { datetime .now ().strftime ('%Y_%m_%d_%H_%M_%S' )} .log"
198212 file_handler = logging .FileHandler (filename , mode = "w" , encoding = "utf-8" )
213+
199214 # the log files should always log at least info so that users will always have
200215 # minimal info for debugging even if they specify "ignore_warnings"
201216 file_handler .setLevel (level )
202217 file_handler .setFormatter (logging .Formatter (LOG_FORMAT ))
203218 logger .addHandler (file_handler )
204219
205- if log_limit > 0 :
206- for path in list (sorted (glob .glob (f"{ log_path_prefix } *.log" ), reverse = True ))[log_limit :]:
207- os .remove (path )
208-
209220 if debug :
210221 import faulthandler
211222
0 commit comments