12

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

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

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

我想在不分叉的情况下运行代码时抑制这些前缀。我尝试了什么:

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

有没有办法抑制前缀?

4

2 回答 2

12

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

在我的扩展构建中,我有以下设置:

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
)
于 2013-05-21T17:28:26.543 回答
0

可以做

sbt -error ...

并且

sbt -warn ...
于 2021-03-26T13:57:14.233 回答