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=truesbt 起動スクリプトでの設定。ただし、これは色付きの 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 に答える