import os import sys import logging import click def exception_handler(exception_type, exception, traceback): if bool(os.getenv('DEBUG_UCLOUD')) is True: sys.__excepthook__(exception_type, exception, traceback) else: print("%s: %s" % (exception_type.__name__, exception)) class NoTracebackStreamHandler(logging.StreamHandler): def handle(self, record): info, cache = record.exc_info, record.exc_text record.exc_info, record.exc_text = None, None if record.levelname in ["WARNING", "WARN"]: click.echo(click.style('', fg='yellow', bold=True, reset=False), nl=False) elif record.levelname == "ERROR": click.echo(click.style('', fg='red', bold=True, reset=False), nl=False) elif record.levelname == "INFO": click.echo(click.style('', fg='green', bold=True, reset=False), nl=False) elif record.levelname == "CRITICAL": click.echo(click.style('', fg='cyan', bold=True, reset=False), nl=False) try: super().handle(record) finally: record.exc_info = info record.exc_text = cache click.echo(click.style('', 'reset'), nl=False)