gpt4free
1import sys,logging
2
3from loguru import logger
4
5def __exception_handle(e_type, e_value, e_traceback):
6if issubclass(e_type, KeyboardInterrupt):
7print('\nBye...')
8sys.exit(0)
9
10sys.__excepthook__(e_type, e_value, e_traceback)
11
12class __InterceptHandler(logging.Handler):
13def emit(self, record):
14try:
15level = logger.level(record.levelname).name
16except ValueError:
17level = record.levelno
18
19frame, depth = logging.currentframe(), 2
20while frame.f_code.co_filename == logging.__file__:
21frame = frame.f_back
22depth += 1
23
24logger.opt(depth=depth, exception=record.exc_info).log(
25level, record.getMessage()
26)
27
28def hook_except_handle():
29sys.excepthook = __exception_handle
30
31def hook_logging(**kwargs):
32logging.basicConfig(handlers=[__InterceptHandler()], **kwargs)
33