def pp_traceback(traceback_format_stack): import pygments from pygments.lexers import Python3TracebackLexer from pygments.formatters import TerminalTrueColorFormatter traceback_string = ''.join(traceback_format_stack) traceback_color = pygments.highlight(traceback_string,Python3TracebackLexer(),TerminalTrueColorFormatter(style='trac')) # trac or rainbow_dash return traceback_color
def excepthook(exc_type: Optional[Type[BaseException]], exc_value: Optional[BaseException], exc_traceback: Optional[TracebackType]) -> None: tb = ''.join(traceback.format_exception(exc_type, exc_value, exc_traceback)) lexer = Python3TracebackLexer(stripall=True, tabsize=4) formatter = Terminal256Formatter(style='vim', bg='dark') print(highlight(tb, lexer, formatter).strip(), file=sys.stderr)
import traceback from datetime import datetime, timedelta from io import StringIO from typing import Any, Dict from aiohttp.abc import AbstractAccessLogger from aiohttp.hdrs import METH_POST try: import pygments from pygments.lexers import Python3TracebackLexer from pygments.formatters import Terminal256Formatter except ImportError: # pragma: no cover pyg_lexer = pyg_formatter = None else: pyg_lexer, pyg_formatter = Python3TracebackLexer(), Terminal256Formatter( style='vim') try: from devtools import pformat as format_extra from devtools.ansi import isatty, sformat except ImportError: # pragma: no cover from pprint import pformat isatty = False sformat = None def format_extra(extra, highlight): return pformat(extra)
from devtools.ansi import isatty, sformat from pygments.formatters import Terminal256Formatter from pygments.lexers import Python3TracebackLexer rs_dft_logger = logging.getLogger('adev.server.dft') rs_aux_logger = logging.getLogger('adev.server.aux') tools_logger = logging.getLogger('adev.tools') main_logger = logging.getLogger('adev.main') LOG_FORMATS = { logging.DEBUG: sformat.dim, logging.INFO: sformat.green, logging.WARN: sformat.yellow, } pyg_lexer = Python3TracebackLexer() pyg_formatter = Terminal256Formatter(style='vim') split_log = re.compile(r'^(\[.*?\])') class HighlightStreamHandler(logging.StreamHandler): def setFormatter(self, fmt): self.formatter = fmt self.formatter.stream_is_tty = isatty( self.stream) and platform.system().lower() != 'windows' class DefaultFormatter(logging.Formatter): def __init__(self, fmt=None, datefmt=None, style='%'): super().__init__(fmt, datefmt, style) self.stream_is_tty = False