Scala 如何在sbt中抑制信息和成功消息?

Scala 如何在sbt中抑制信息和成功消息?,scala,sbt,Scala,Sbt,当我运行sbt时,我看到一些我想删除的页眉和页脚信息: $ sbt run [info] Set current project to XXX (in build file:/path/to/dir/) <actual program output goes here; stuff I care about> [success] Total time: 68 s, completed Apr 1, 2012 7:30:45 PM $ $sbt运行 [信息]将当前项目设置为XXX

当我运行
sbt
时,我看到一些我想删除的页眉和页脚信息:

$ sbt run 
[info] Set current project to XXX (in build file:/path/to/dir/)
<actual program output goes here; stuff I care about>
[success] Total time: 68 s, completed Apr 1, 2012 7:30:45 PM
$ 
$sbt运行
[信息]将当前项目设置为XXX(在生成文件中:/path/to/dir/)
[成功]总时间:68秒,完成时间:2012年4月1日下午7:30:45
$ 
我怎样才能去掉这两行(即
[info]
[success]
行)?是否有一些
build.sbt
配置设置可用于此操作?理想情况下,我不想为了摆脱这两行代码而使用另一个工具/依赖项

以下是我尝试过的事情列表:

  • 将运行日志级别设置为警告
  • 将全局日志级别设置为警告
  • 设置
    -Dsbt.log.noformat=true
我当前使用的解决方案: 复制
sbt
生成的
java
调用(通过执行
ps
top
)作为执行
fork-in-run:=true
的结果,并直接在命令行上手动运行该
java
命令

如果能告诉
sbt
不要打印这些行,那就最好了,而且要干净得多

  • Scala版本:2.9.1
  • SBT版本:0.11.1

您应该能够通过将该行添加到您的
build.sbt
文件中来摆脱“设置当前项目”行:

onLoadMessage := ""
sbt 0.13.13 使用
-warn
-error
。见:

强烈建议迁移到单连字符选项:
-error
-warn
-info
-debug

sbt 0.13.1 要禁用
info
消息,请使用
--warn
--error
命令行选项运行SBT

要禁用
[success]
消息,请将
showSuccess
设置为
false

将这一切结合在一起,它为您提供了以下选项:

  • 在命令行上使用以下命令:

    $ sbt --error 'set showSuccess := false' run
    
  • build.sbt
    add
    showSuccess:=false

    $ cat build.sbt
    showSuccess := false
    
    然后执行
    sbt--error run


正如Jacek在他的回复中提到的,在
build.sbt
中,您可以添加
showSuccess:=false
以抑制
[success]
消息。为了抑制
[info]
消息,我将日志级别设置为
级别。仅针对
运行配置发出警告。将其放在一起,您希望将这些行添加到
build.sbt

showSuccess := false

logLevel in run := Level.Warn

你总是这样开始你的申请吗?sbt是一种构建工具,而不是应用程序运行程序。如果我的假设是正确的,我建议您构建和打包应用程序,并使用“scala.Thank@drexin”运行它。是的,我意识到有更好的方法来启动它。我现在正在使用。非常酷,做了我一直想做的事情:简单而直接的调用后开发。这也是我的经验。不再适用于sbt 1.0.2。应在sbt 1.1.2中再次适用: