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

blu*_*e10 11 logging scala sbt

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

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

[error] [main] INFO MyClass ...
[error] [main] DEBUG MyClass ...
Run Code Online (Sandbox Code Playgroud)

我想压缩这些前缀,就像在没有分叉的情况下运行代码一样.我尝试了什么:

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

有没有办法压制前缀?

And*_*ndy 10

您需要设置项目的输出策略.

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

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
)
Run Code Online (Sandbox Code Playgroud)