MCPcopy Create free account
hub / github.com/cpystan/SD-VLM / build_logger

Function build_logger

llava/utils.py:17–57  ·  view source on GitHub ↗
(logger_name, logger_filename)

Source from the content-addressed store, hash-verified

15
16
17def build_logger(logger_name, logger_filename):
18 global handler
19
20 formatter = logging.Formatter(
21 fmt="%(asctime)s | %(levelname)s | %(name)s | %(message)s",
22 datefmt="%Y-%m-%d %H:%M:%S",
23 )
24
25 # Set the format of root handlers
26 if not logging.getLogger().handlers:
27 logging.basicConfig(level=logging.INFO)
28 logging.getLogger().handlers[0].setFormatter(formatter)
29
30 # Redirect stdout and stderr to loggers
31 stdout_logger = logging.getLogger("stdout")
32 stdout_logger.setLevel(logging.INFO)
33 sl = StreamToLogger(stdout_logger, logging.INFO)
34 sys.stdout = sl
35
36 stderr_logger = logging.getLogger("stderr")
37 stderr_logger.setLevel(logging.ERROR)
38 sl = StreamToLogger(stderr_logger, logging.ERROR)
39 sys.stderr = sl
40
41 # Get logger
42 logger = logging.getLogger(logger_name)
43 logger.setLevel(logging.INFO)
44
45 # Add a file handler for all loggers
46 if handler is None:
47 os.makedirs(LOGDIR, exist_ok=True)
48 filename = os.path.join(LOGDIR, logger_filename)
49 handler = logging.handlers.TimedRotatingFileHandler(
50 filename, when='D', utc=True, encoding='UTF-8')
51 handler.setFormatter(formatter)
52
53 for name, item in logging.root.manager.loggerDict.items():
54 if isinstance(item, logging.Logger):
55 item.addHandler(handler)
56
57 return logger
58
59
60class StreamToLogger(object):

Callers 4

model_worker.pyFile · 0.90
sglang_worker.pyFile · 0.90
controller.pyFile · 0.90

Calls 1

StreamToLoggerClass · 0.85

Tested by

no test coverage detected