MCPcopy
hub / github.com/kohya-ss/sd-scripts / setup_logging

Function setup_logging

library/utils.py:41–87  ·  view source on GitHub ↗
(args=None, log_level=None, reset=False)

Source from the content-addressed store, hash-verified

39
40
41def setup_logging(args=None, log_level=None, reset=False):
42 if logging.root.handlers:
43 if reset:
44 # remove all handlers
45 for handler in logging.root.handlers[:]:
46 logging.root.removeHandler(handler)
47 else:
48 return
49
50 # log_level can be set by the caller or by the args, the caller has priority. If not set, use INFO
51 if log_level is None and args is not None:
52 log_level = args.console_log_level
53 if log_level is None:
54 log_level = "INFO"
55 log_level = getattr(logging, log_level)
56
57 msg_init = None
58 if args is not None and args.console_log_file:
59 handler = logging.FileHandler(args.console_log_file, mode="w")
60 else:
61 handler = None
62 if not args or not args.console_log_simple:
63 try:
64 from rich.logging import RichHandler
65 from rich.console import Console
66 from rich.logging import RichHandler
67
68 handler = RichHandler(console=Console(stderr=True))
69 except ImportError:
70 # print("rich is not installed, using basic logging")
71 msg_init = "rich is not installed, using basic logging"
72
73 if handler is None:
74 handler = logging.StreamHandler(sys.stdout) # same as print
75 handler.propagate = False
76
77 formatter = logging.Formatter(
78 fmt="%(message)s",
79 datefmt="%Y-%m-%d %H:%M:%S",
80 )
81 handler.setFormatter(formatter)
82 logging.root.setLevel(log_level)
83 logging.root.addHandler(handler)
84
85 if msg_init is not None:
86 logger = logging.getLogger(__name__)
87 logger.info(msg_init)
88
89
90setup_logging()

Callers 15

train_db.pyFile · 0.90
trainFunction · 0.90
trainMethod · 0.90
sd3_train.pyFile · 0.90
trainFunction · 0.90
train_leco.pyFile · 0.90
flux_train.pyFile · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected