首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PyDev窗口中更改日志记录颜色

在PyDev窗口中更改日志记录颜色
EN

Stack Overflow用户
提问于 2015-08-25 14:29:25
回答 2查看 854关注 0票数 0

我正在使用PyDev,并且正在尝试更改日志消息的默认颜色(例如,将信息设置为绿色...)。我尝试使用colorlog和colorama,但控制台中的颜色(包括标准颜色和交互颜色)保持不变。

下面是我使用的代码:

代码语言:javascript
复制
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()
EN

回答 2

Stack Overflow用户

发布于 2015-08-25 20:09:52

默认情况下,Eclipse控制台视图不能正确处理ANSI转义颜色,但是您可以安装一个插件来启用它:

https://marketplace.eclipse.org/content/ansi-escape-console

通过使用这个插件,它应该可以在您正常运行时正确显示颜色。

我正在粘贴下面的代码,它展示了如何正确地处理ansi转义序列:

代码语言:javascript
复制
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中修复)。

票数 1
EN

Stack Overflow用户

发布于 2015-08-25 21:10:24

一个为我工作的插件是Grepconsole。您可以在控制台中键入颜色的图案。如"debug“或"warning”或更复杂的模式:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32196958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档