67def get_log_handler(singleton={}):
68 """
69 Return the STDOUT handler singleton used for all logging.
70 """
71 if "value" in singleton:
72 return singleton["value"]
73
74 handler = logging.StreamHandler()
75 if os.isatty(handler.stream.fileno()):
76 FORMAT = "[%(asctime)s][$BOLD%(name)-20s$RESET][%(levelname)-18s] %(message)s"
77 handler.setFormatter(ColoredFormatter(insert_seqs(FORMAT)))
78
79
80
81 log = logging.getLogger()
82 log.addHandler(handler)
83 log.setLevel(logging.DEBUG)
84
85 singleton["value"] = handler
86 return handler
87
88@contextmanager