2

私はsbt-ideaプラグインを使用しており、メタプロジェクトとメイン プロジェクトでlogLevel := Level.Warn. これは、ほとんどのビルドからすべてのサブ警告メッセージを消すのに効果的ですが、メッセージをsbt-idea出力し続けinfoます。

おそらく、プラグインがlogLevel適用される前にロードされ、何らかの方法で異なるレベルのロガーへの参照を取得していると思いますか? 特に、プラグインは、初期化時にロガーの状態を要求しているように見えることを除いて、ロギングに関して特にファンキーなことをしているようには見えません。設定が適用された後のロガー オブジェクトとは異なるロガー オブジェクトになる可能性がありますか?

sbt のどの部分が実際にlogLevel設定キーを消費して、新しいロガーを作成するのか、既存のロガーを変更するのかを確認することはできません。

4

1 に答える 1

2

--warnまたは--error前に使用しgen-ideaます。

$ sbt --warn gen-idea

また

$ sbt --error gen-idea

最新情報については、ログ レベルをグローバルに変更するを参照してください (しゃれが意図されています)。

ただし、完了するまでに時間がかかり、その間何もinfo出力されない可能性があるため、コマンドを黙らせた後は s を見逃す可能性があるため、注意してください。gen-idea

したがって、別のトリックを使用して の前にwarnorerrorコマンドを実行する方が便利な場合がありますgen-idea

$ sbt warn gen-idea
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Set current project to aaa (in build file:/Users/jacek/sandbox/stackoverflow/16256180/)

これにより、コンソールに出力された何かが表示されます。これは、役立つ場合とそうでない場合があります。

于 2013-12-23T15:03:43.523 に答える