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