运行播放命令时如何关闭颜色代码?

Posted

技术标签:

【中文标题】运行播放命令时如何关闭颜色代码?【英文标题】:How can I turn off color codes when running Play commands? 【发布时间】:2014-05-05 02:57:57 【问题描述】:

当我运行 Play 命令时,在终端中显示的日志颜色漂亮且干净,但是当我在 Jenkins 中构建我的应用程序时,那里的日志显示颜色代码,使它们难以阅读。

命令行日志:

[info] ApplicationSpec
[info] Application should
[info] + send 404 on a bad request
[info] x render the index page
[error]    '401' is not equal to '200' (ApplicationSpec.scala:25)
[info] Total for specification ApplicationSpec
[info] Finished in 134 ms
[info] 2 examples, 1 failure, 0 error
[error] Failed: Total 3, Failed 2, Errors 0, Passed 1
[error] Failed tests:
[error]     ApplicationSpec
[error]     IntegrationSpec
[error] (test:test) sbt.TestsFailedException: Tests unsuccessful
[error] Total time: 23 s, completed Mar 26, 2014 10:00:34 AM

Jenkins 日志:

[0m[[0minfo[0m] [0mApplicationSpec[0m
[0m[[0minfo[0m] [0mApplication should[0m
[0m[[0minfo[0m] [0m[32m+[0m send 404 on a bad request[0m
[0m[[0minfo[0m] [0m[33mx[0m render the index page[0m
[0m[[31merror[0m] [0m   '401' is not equal to '200' (ApplicationSpec.scala:25)[0m
[0m[[0minfo[0m] [0mTotal for specification ApplicationSpec[0m
[0m[[0minfo[0m] [0m[34mFinished in 229 ms[0m[0m
[0m[[0minfo[0m] [0m[34m2 examples, 1 failure, 0 error[0m[0m
[0m[[31merror[0m] [0mFailed: Total 3, Failed 2, Errors 0, Passed 1[0m
[0m[[31merror[0m] [0mFailed tests:[0m
[0m[[31merror[0m] [0m   ApplicationSpec[0m
[0m[[31merror[0m] [0m   IntegrationSpec[0m
[0m[[31merror[0m] [0m(test:[31mtest[0m) sbt.TestsFailedException: Tests unsuccessful[0m
[0m[[31merror[0m] [0mTotal time: 6 s, completed Mar 25, 2014 2:28:01 PM[0m

如您所见,Jenkins 输出仍然具有相同的内容,但颜色代码使它变得如此嘈杂,以至于很难弄清楚发生了什么。

我找到了limited information,了解如何为 SBT 工具关闭颜色代码,但在通过 Jenkins 运行我的构建时,我无法弄清楚如何通过 play 命令传递它。

【问题讨论】:

好点,例如play -Dsbt.log.noformat=true dist 怎么样? @biesior 成功了!把它变成一个答案,我很乐意接受它! How can colored terminal output be disabled for simple-build-tool的可能重复 @JacekLaskowski 我看到了这个问题,但 Play runner 与 SBT 不同。我没有尝试(在此处获得答案之前)可以让我从命令行将其关闭。这个问题是针对 Play 的,而不是一般的 SBT。 播放命令是带有播放插件的 sbt,颜色来自 sbt。接受的答案与指出的答案有何不同?请详细说明。 【参考方案1】:

或者您可以安装 Ansi-Color Jenkins 插件,并在您的 Jenkins 日志中实际拥有颜色

【讨论】:

太好了,它是否也适用于现有日志(来自以前的版本?) 您的意思是“当前正在运行的构建”与“现有构建”?是的,它确实。如果您问的是“安装插件之前”还是“安装插件之后”......不知道,但我不明白为什么不这样做。它不会向日志中注入任何新内容,它只会影响日志的显示方式 我的意思是第二个选项,但我自己会尽快检查;) 不幸的是,我没有能力向 Jenkins 添加插件,并且获得批准的可能性是......充其量是最小的。 @cdeszaq 是的,我们可以告诉 Jenkins 清除整个文件系统并造成核浩劫,但我们无法安装新插件......我不适合 Jenkins,但是我肯定在其他地区多次撞到这堵砖墙......我为你感到。【参考方案2】:

事实上我也很好奇(有同样的问题)所以检查了你发送的建议:)

答案是:

play -Dsbt.log.noformat=true dist

或者(如果更多的参数应该像非默认端口号一样发送到控制台):

play -Dsbt.log.noformat=true "~run 9123"

【讨论】:

或者总是有Ansi-Color plugin

以上是关于运行播放命令时如何关闭颜色代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 命令行中以不同的颜色回显 [关闭]

在图像中获取颜色代码[关闭]

在 BASH 下运行的程序的颜色输出 [关闭]

在 SwiftUI 中播放音频时无法更新行颜色

如何改变VS2008命令窗口的背景颜色,就是我运行程序后弹出结果的那个?

notepad++怎么设置代码颜色?