你已经派生过 gprMax
镜像自地址
https://gitee.com/sunhf/gprMax.git
已同步 2025-08-08 07:24:19 +08:00
Use colorama to control logging colours
这个提交包含在:
@@ -21,6 +21,10 @@ import logging
|
|||||||
import sys
|
import sys
|
||||||
from copy import copy
|
from copy import copy
|
||||||
|
|
||||||
|
from colorama import Back, Fore, Style, init
|
||||||
|
|
||||||
|
init()
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@@ -40,31 +44,29 @@ logging.Logger.basic = basic
|
|||||||
|
|
||||||
# Colour mapping for different log levels
|
# Colour mapping for different log levels
|
||||||
MAPPING = {
|
MAPPING = {
|
||||||
"DEBUG": 37, # white
|
"DEBUG": Fore.WHITE,
|
||||||
"BASIC": 37, # white
|
"INFO": Fore.WHITE,
|
||||||
"INFO": 37, # white
|
"BASIC": Fore.WHITE,
|
||||||
"WARNING": 33, # yellow
|
"WARNING": Fore.YELLOW,
|
||||||
"ERROR": 31, # red
|
"ERROR": Fore.RED,
|
||||||
"CRITICAL": 41, # white on red bg
|
"CRITICAL": Fore.WHITE + Back.RED, # white on red bg
|
||||||
}
|
}
|
||||||
PREFIX = "\033["
|
|
||||||
SUFFIX = "\033[0m"
|
|
||||||
|
|
||||||
|
|
||||||
class CustomFormatter(logging.Formatter):
|
class CustomFormatter(logging.Formatter):
|
||||||
"""Logging Formatter to add colors and count warning / errors
|
"""Logging Formatter to add colors and count warning / errors
|
||||||
(https://stackoverflow.com/a/46482050)."""
|
(https://stackoverflow.com/a/46482050)."""
|
||||||
|
|
||||||
def __init__(self, pattern):
|
def __init__(self, pattern: str):
|
||||||
logging.Formatter.__init__(self, pattern)
|
logging.Formatter.__init__(self, pattern)
|
||||||
|
|
||||||
def format(self, record):
|
def format(self, record: logging.LogRecord) -> str:
|
||||||
colored_record = copy(record)
|
colored_record = copy(record)
|
||||||
levelname = colored_record.levelname
|
levelname = colored_record.levelname
|
||||||
seq = MAPPING.get(levelname, 37) # default white
|
colour = MAPPING.get(levelname, Fore.BLUE) # default white
|
||||||
colored_levelname = f"{PREFIX}{seq}m{levelname}{SUFFIX}"
|
colored_levelname = f"{colour}{levelname}{Style.RESET_ALL}"
|
||||||
colored_record.levelname = colored_levelname
|
colored_record.levelname = colored_levelname
|
||||||
colored_record.msg = f"{PREFIX}{seq}m{colored_record.getMessage()}{SUFFIX}"
|
colored_record.msg = f"{colour}{colored_record.getMessage()}{Style.RESET_ALL}"
|
||||||
return logging.Formatter.format(self, colored_record)
|
return logging.Formatter.format(self, colored_record)
|
||||||
|
|
||||||
|
|
||||||
|
在新工单中引用
屏蔽一个用户