MCPcopy Create free account
hub / github.com/EmbodiedGPT/EmbodiedGPT_Pytorch / build_logger

Function build_logger

robohusky/utils.py:19–69  ·  view source on GitHub ↗
(logger_name, logger_filename)

Source from the content-addressed store, hash-verified

17
18
19def build_logger(logger_name, logger_filename):
20 global handler
21
22 formatter = logging.Formatter(
23 fmt="%(asctime)s | %(levelname)s | %(name)s | %(message)s",
24 datefmt="%Y-%m-%d %H:%M:%S",
25 )
26
27 # Set the format of root handlers
28 if not logging.getLogger().handlers:
29 if sys.version_info[1] >= 9:
30 # This is for windows
31 logging.basicConfig(level=logging.INFO, encoding="utf-8")
32 else:
33 if platform.system() == "Windows":
34 warnings.warn(
35 "If you are running on Windows, "
36 "we recommend you use Python >= 3.9 for UTF-8 encoding."
37 )
38 logging.basicConfig(level=logging.INFO)
39 logging.getLogger().handlers[0].setFormatter(formatter)
40
41 # Redirect stdout and stderr to loggers
42 stdout_logger = logging.getLogger("stdout")
43 stdout_logger.setLevel(logging.INFO)
44 sl = StreamToLogger(stdout_logger, logging.INFO)
45 sys.stdout = sl
46
47 stderr_logger = logging.getLogger("stderr")
48 stderr_logger.setLevel(logging.ERROR)
49 sl = StreamToLogger(stderr_logger, logging.ERROR)
50 sys.stderr = sl
51
52 # Get logger
53 logger = logging.getLogger(logger_name)
54 logger.setLevel(logging.INFO)
55
56 # Add a file handler for all loggers
57 if handler is None:
58 os.makedirs(LOGDIR, exist_ok=True)
59 filename = os.path.join(LOGDIR, logger_filename)
60 handler = logging.handlers.TimedRotatingFileHandler(
61 filename, when="D", utc=True, encoding="utf-8"
62 )
63 handler.setFormatter(formatter)
64
65 for name, item in logging.root.manager.loggerDict.items():
66 if isinstance(item, logging.Logger):
67 item.addHandler(handler)
68
69 return logger
70
71
72class StreamToLogger(object):

Callers

nothing calls this directly

Calls 1

StreamToLoggerClass · 0.85

Tested by

no test coverage detected