在Eclipse IDE控制台中,如何复制文本输出而不包含转义字符?

3
在Windows平台上运行的Eclipse IDE中,当我调试代码时,经常会将控制台输出的部分或全部复制到文本编辑器中。不幸的是,结果文本充满了转义字符和特殊代码,使得信息更难阅读。在Eclipse实际控制台中没有任何可见的内容。
长期以来,我一直对Eclipse如何处理被复制文本的格式感到烦恼。这是可以修改为复制输出而无需特殊代码和转义字符的默认行为吗?理想情况下,我希望只复制原始文本,包括基本的换行符、新行和行结束控制字符。
此外,我应该指出,我正在使用“Spring Tool Suite”(STS)定制版本,因此如果使用基本的Eclipse IDE,我的体验可能会有所不同……但我认为这是Eclipse本身固有的问题。
以下是Eclipse控制台输出的示例:
2018-10-24T09:00:41.902-06:00  INFO  45304 --- [enerContainer-2] o.l.p.c.s.i.MyServiceIntegration  : writeContact contacts="1" timeMS="22"
2018-10-24T09:00:41.903-06:00  WARN  45304 --- [enerContainer-1] org.zzz.logging.LogService        : Error getting RequestInfo data. nested exception is ..."
2018-10-24T09:00:41.904-06:00  INFO  45304 --- [enerContainer-1] o.l.p.c.s.listener                : Processing contacts from Message ID: zlt223247 [contact.number.init]

当复制到文本编辑器中时,它的外观如何(我已经尝试过多个):
2m2018-10-24T09:00:41.902-06:00ESC[0;39m [32m INFO[0;39m [35m45304[0;39m [2m---[0;39m [2m[enerContainer-2][0;39m [36mo.l.p.c.s.i.MyServiceIntegration  [0;39m [2m:[0;39m writeCtags tags="1" timeMS="22"
2m2018-10-24T09:00:41.903-06:00ESC[0;39m [33m WARN[0;39m [35m45304[0;39m [2m---[0;39m [2m[enerContainer-1][0;39m [36morg.zzz.logging.LogService     [0;39m [2m:[0;39m Error getting RequestInfo data. nested exception is..." 
2m2018-10-24T09:00:41.904-06:00ESC[0;39m [32m INFO[0;39m [35m45304[0;39m [2m---[0;39m [2m[enerContainer-1][0;39m [36mo.l.p.c.s.listener

如果您左右滚动,您会发现在标准文本编辑器中,“复制”的控制台输出是多么混乱。如果有人知道如何复制“干净”的输出副本,我会很乐意知道!


那些看起来像是颜色代码。这不是Eclipse所做的事情 - 它可能来自于生成该日志的任何内容。 - greg-449
有趣...确实有一些项目上的着色,例如DEBUG模式、类名等。我预计所有代码(包括颜色)都共同作用于格式化输出。我正在运行的项目是Spring Boot,带有嵌入式Tomcat服务器。我预计这是来自Tomcat服务器日志记录,但也许是底层的Spring框架在“美化”输出。 - Michael M
1个回答

1
我遇到了同样的问题。我找到了几种解决方法:
  1. 这是Spring文档中关于此问题的说明 - https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging.console-output.color-coded 。理论上,可以通过spring.output.ansi.enabled=never选项禁用颜色。但是,由于某些原因,它对我不起作用。

  2. 您可以使用Eclipse插件 - "ANSI Escape in Console"。它很好用,但有一个问题-它会减慢控制台速度。

  3. 我偶然发现了它。似乎spring.output.ansi.enabled参数默认设置为“DETECT”,即如果Spring Boot发现控制台支持“ANSI转义字符”,则会将其输出到控制台。 可以在“运行 -> 运行配置...”中找到Eclipse控制台的此参数。我们找到所需的配置,在“Spring Boot”选项卡上取消选中“ANSI控制台输出”。 enter image description here

之前: enter image description here 之后: enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接