3030class Logger :
3131 def __init__ (self ):
3232 self ._logger = None
33- self ._is_initialized = False
3433 self .log_path = "padiff_log"
3534
3635 for key , conf in log_config .items ():
@@ -41,26 +40,25 @@ def __init__(self):
4140 log_colors = {key : conf ["color" ] for key , conf in log_config .items ()},
4241 )
4342
44- def setup (self , log_parent_dir ):
45- if self ._is_initialized :
46- return
47-
48- self ._logger = logging .getLogger ("padiff" )
43+ def setup (self , log_root_dir ):
44+ os .makedirs (log_root_dir , exist_ok = True )
4945
5046 silent_flag = os .getenv ("PADIFF_SILENT" )
5147 log_level_flag = os .getenv ("PADIFF_LOG_LEVEL" )
52-
5348 if log_level_flag and log_level_flag .upper () in ("DEBUG" , "INFO" , "WARNING" , "ERROR" ):
5449 log_level = getattr (logging , log_level_flag .upper ())
5550 else :
5651 log_level = logging .INFO
57- self ._logger .setLevel (log_level )
58- self ._logger .propagate = False
5952
60- if self ._logger .handlers :
61- self ._logger .handlers .clear ()
53+ if self ._logger is None :
54+ self ._logger = logging .getLogger ("padiff" )
55+ self ._logger .setLevel (log_level )
56+ self ._logger .propagate = False
57+
58+ if self ._logger .handlers :
59+ self ._logger .handlers .clear ()
6260
63- log_file_path = os .path .join (log_parent_dir , "padiff.log" )
61+ log_file_path = os .path .join (log_root_dir , "padiff.log" )
6462 file_handler = logging .FileHandler (log_file_path , encoding = "utf-8" )
6563 file_formatter = logging .Formatter ("[AutoDiff] [%(levelname)s] %(message)s" )
6664 file_handler .setFormatter (file_formatter )
@@ -74,7 +72,7 @@ def setup(self, log_parent_dir):
7472 self ._logger .info (f"Logging initialized. Log file: { log_file_path } " )
7573
7674 self ._is_initialized = True
77- self .log_path = log_parent_dir
75+ self .log_path = log_root_dir
7876
7977 def info (self , * args ):
8078 if self ._logger is not None :
@@ -108,14 +106,10 @@ def debug(self, *args):
108106 def debug_once (self , * args ):
109107 self .debug (* args )
110108
111- def reset_dir (self , path ):
112- if os .path .exists (path ):
113- shutil .rmtree (path )
114- os .makedirs (path )
115- self .setup (path )
116-
117- def log_file (self , filename , mode , info ):
118- filepath = os .path .join (self .log_path , filename )
109+ def log_file (self , filename , mode , info , root_dir = None ):
110+ if root_dir is None :
111+ root_dir = self .log_path
112+ filepath = os .path .join (root_dir , filename )
119113 with open (filepath , mode ) as f :
120114 f .write (info )
121115 return filepath
@@ -129,6 +123,12 @@ def log_file(self, filename, mode, info):
129123"""
130124
131125
126+ def reset_dir (path ):
127+ if os .path .exists (path ):
128+ shutil .rmtree (path )
129+ os .makedirs (path )
130+
131+
132132def print_report_info (nodes , reports , exc , stage , msg = None ):
133133
134134 logger .error (
0 commit comments