我正在使用PyDev,并且正在尝试更改日志消息的默认颜色(例如,将信息设置为绿色...)。我尝试使用colorlog和colorama,但控制台中的颜色(包括标准颜色和交互颜色)保持不变。
下面是我使用的代码:
import logging
import colorlog
from colorlog import ColoredFormatter
import colorama
from colorama import init
init()
formatter = ColoredFormatter("%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s",
datefmt=None,
reset=True,
log_colors={
'DEBUG': 'cyan',
'INFO': 'green',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'red',
}
)
logger = logging.getLogger('example')
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
return logger
def main():
"""Create and use a logger."""
logger = setup_logger()
logger.debug('a debug message')
logger.info('an info message')
logger.warning('a warning message')
logger.error('an error message')
logger.critical('a critical message')
if __name__ == '__main__':
main()发布于 2015-08-25 20:09:52
默认情况下,Eclipse控制台视图不能正确处理ANSI转义颜色,但是您可以安装一个插件来启用它:
https://marketplace.eclipse.org/content/ansi-escape-console
通过使用这个插件,它应该可以在您正常运行时正确显示颜色。
我正在粘贴下面的代码,它展示了如何正确地处理ansi转义序列:
class AnsiColors:
FG_BLACK = '\033[30m'
FG_RED = '\033[31m'
FG_GREEN = '\033[32m'
FG_YELLOW = '\033[33m'
FG_BLUE = '\033[34m'
FG_MAGENTA = '\033[35m'
FG_CYAN = '\033[36m'
FG_WHITE = '\033[37m'
BG_BLACK = '\033[40m'
BG_RED = '\033[41m'
BG_GREEN = '\033[42m'
BG_YELLOW = '\033[43m'
BG_BLUE = '\033[44m'
BG_MAGENTA = '\033[45m'
BG_CYAN = '\033[46m'
BG_WHITE = '\033[47m'
END = '\033[0m'
for d in dir(AnsiColors):
if d.startswith("FG"):
print(getattr(AnsiColors, d) + d + AnsiColors.END)
if d.startswith("BG"):
print(getattr(AnsiColors, d) + d + AnsiColors.END)这应该会给出如下输出:

请注意,默认情况下,它也可以在交互式控制台中工作,但不幸的是,PyDev 4.3.0中存在一个错误,导致它无法正常工作(但它将在PyDev 4.4.0中修复)。
发布于 2015-08-25 21:10:24
一个为我工作的插件是Grepconsole。您可以在控制台中键入颜色的图案。如"debug“或"warning”或更复杂的模式:)
https://stackoverflow.com/questions/32196958
复制相似问题