sbt:在stdout中抑制日志记录前缀

时间:2013-01-24 15:11:58

标签: scala logging sbt

当使用sbt with forking(fork in run := true)时,我的应用程序到stdout的每个输出都以[info]为前缀;输出到stderr的前缀是[error]

使用输出到stderr的Java日志框架时,这种行为有点烦人。生成的调试消息通常如下所示:

[error] [main] INFO MyClass ...
[error] [main] DEBUG MyClass ...

我想在没有分叉的情况下运行代码时禁止使用这些前缀。我尝试了什么:

  • 在sbt启动脚本中设置sbt -Dsbt.log.noformat=true。但这只会删除彩色ANSI输出;前缀仍然没有颜色
  • logLevel in run := Level.Error中设置build.sbt。这似乎对使用分叉进行日志记录没有任何影响。

有没有办法压制前缀?

2 个答案:

答案 0 :(得分:10)

您需要设置项目的output strategy

在我的扩展版本中,我有以下设置:

settings = Project.defaultSettings ++ Seq(
  fork                  :=   true, // Fork to separate process
  connectInput in run   :=   true, // Connects stdin to sbt during forked runs
  outputStrategy        :=   Some(StdoutOutput) // Get rid of output prefix
  // ... other settings
)

答案 1 :(得分:0)

可以做

sbt -error ...

还有

sbt -warn ...