44
55
66class LoggingConfig :
7- def __init__ (self , folder , default_level = logging .INFO ):
7+ def __init__ (self , folder , log_level = logging .INFO ):
88 log_directory = os .path .join (folder , "logs" )
99 os .makedirs (log_directory , exist_ok = True )
1010
@@ -26,52 +26,52 @@ def __init__(self, folder, default_level=logging.INFO):
2626 "console" : {
2727 "class" : "logging.StreamHandler" ,
2828 "formatter" : "simple" ,
29- "level" : " INFO" ,
29+ "level" : logging . INFO ,
3030 },
3131 "stdout" : {
3232 "class" : "logging.FileHandler" ,
3333 "filename" : os .path .join (log_directory , "program.out" ),
3434 "formatter" : "simple" ,
35- "level" : " INFO" ,
35+ "level" : logging . INFO ,
3636 },
3737 "logfile" : {
3838 "class" : "logging.FileHandler" ,
3939 "filename" : os .path .join (log_directory , "program.log" ),
4040 "formatter" : "detailed" ,
41- "level" : " DEBUG" ,
41+ "level" : logging . DEBUG ,
4242 },
4343 "errorfile" : {
4444 "class" : "logging.FileHandler" ,
4545 "filename" : os .path .join (log_directory , "program.err" ),
4646 "formatter" : "detailed" ,
47- "level" : " ERROR" ,
47+ "level" : logging . ERROR ,
4848 },
4949 "commandfile" : {
5050 "class" : "logging.FileHandler" ,
5151 "filename" : os .path .join (log_directory , "program.com" ),
5252 "formatter" : "simple" ,
53- "level" : " INFO" ,
53+ "level" : logging . INFO ,
5454 },
5555 "mdanalysis_log" : {
5656 "class" : "logging.FileHandler" ,
5757 "filename" : os .path .join (log_directory , "mdanalysis.log" ),
5858 "formatter" : "detailed" ,
59- "level" : " DEBUG" ,
59+ "level" : logging . DEBUG ,
6060 },
6161 },
6262 "loggers" : {
6363 "" : {
6464 "handlers" : ["console" , "stdout" , "logfile" , "errorfile" ],
65- "level" : default_level ,
65+ "level" : log_level ,
6666 },
6767 "MDAnalysis" : {
6868 "handlers" : ["mdanalysis_log" ],
69- "level" : " DEBUG" ,
69+ "level" : logging . DEBUG ,
7070 "propagate" : False ,
7171 },
7272 "commands" : {
7373 "handlers" : ["commandfile" ],
74- "level" : " INFO" ,
74+ "level" : logging . INFO ,
7575 "propagate" : False ,
7676 },
7777 },
@@ -82,3 +82,23 @@ def setup_logging(self):
8282 logging .getLogger ("MDAnalysis" )
8383 logging .getLogger ("commands" )
8484 return logging .getLogger (__name__ )
85+
86+ def update_logging_level (self , log_level ):
87+ # Update the root logger level
88+ root_logger = logging .getLogger ()
89+ root_logger .setLevel (log_level )
90+ for handler in root_logger .handlers :
91+ if isinstance (handler , logging .FileHandler ):
92+ handler .setLevel (logging .DEBUG )
93+ else :
94+ handler .setLevel (logging .INFO )
95+
96+ # Update all other loggers and their handlers
97+ for logger_name in self .LOGGING ["loggers" ]:
98+ logger = logging .getLogger (logger_name )
99+ logger .setLevel (log_level )
100+ for handler in logger .handlers :
101+ if isinstance (handler , logging .FileHandler ):
102+ handler .setLevel (logging .DEBUG )
103+ else :
104+ handler .setLevel (logging .INFO )
0 commit comments