我正在使用PyCharm在Mac OS X中开发一个GAE应用程序。有没有办法在PyCharm的运行控制台中显示颜色?
我已经设置了一个handler以ansi格式输出颜色。然后,我添加了处理程序:
LOG = logging.getLogger()
LOG.setLevel(logging.DEBUG)
for handler in LOG.handlers:
LOG.removeHandler(handler)
LOG.addHandler(ColorHandler())
LOG.info('hello!')
LOG.warning('hello!')
LOG.debug('hello!')
LOG.error('hello!')
但颜色是一样的。
编辑:
来自JetBrains issue tracker的回应:将代码段的第55行从sys.stderr更改为sys.stdout。stderr流总是用红色着色,而stdout不是。
现在颜色已正确显示。
7条答案
按热度按时间rur96b6h1#
至少从PyCharm 2017.2开始,您可以通过启用以下功能来实现:
执行|编辑配置...|组态设定|在输出控制台中仿真终端
vecaoik12#
PyCharm本身并不支持这个特性,但是你可以下载Grep Console plugin并设置你喜欢的颜色。
以下是截图:http://plugins.jetbrains.com/files/7125/screenshot_14104.png(链路失效)
我希望它能有所帮助:)虽然它没有提供完全彩色的控制台,但它是朝着它迈出的一步。
cfh9epnr3#
迟到了,但任何人与这个问题,这里的解决方案,为我工作:
这来自于这个答案
gz5pxeao4#
2019年9月:PyCharm社区2019.1
PyCharm将所有日志(包括信息/调试)着色为红色。
结果是:这不是PyCharm的问题,这是默认的
logging
的配置方式。PyCharm将写入sys.stderr
的所有内容标为红色。当使用不带参数的StreamHandler()
时,默认流为sys.stderr
。要获取非彩色日志,请在基本配置中指定
logging.StreamHandler(stream=sys.stdout)
,如下所示:或者更详细:
这修复了我的红色PyCharm日志。
lp0sw83n5#
我解决这个问题的方法(在PyCharm 2017.2中)是转到
Preferences -> Editor -> Color Scheme -> Console Colors
并改变Console -> Error output
的颜色。当然,这也改变了错误的颜色,但至少你不会一直看到红色。bis0qfac6#
PyCharm 2019.1.1(Windows 10,1709)-按原样运行snippet-工作正常。
错误:setFormatter -不起作用。
修复:在第67行进行更改,并在第70-71行删除(添加未格式化的处理程序)。
至
第70-71行可移至手动文件下运行构造,以保存测试能力:
将其与标准StreamHandler进行比较:
ecr0jaav7#
我发现了下面的解决方案。显然Pycharm从sys module documentation重定向sys.stdout:
这些对象在程序开始时包含stdin、stderr和stdout的原始值。它们在终止过程中使用,并且无论sys.std* 对象是否被重定向,都可以用于打印到实际的标准流。
如果实际文件被损坏的对象覆盖,它还可以用于将实际文件还原为已知的工作文件对象。但是,执行此操作的首选方法是在替换之前显式保存以前的流,然后还原保存的对象。
因此,要解决这个问题,您可以将输出重定向到
sys.__stdout__
。示例配置来自我的log_config.yml: