2016-05-03 16 views
1

Javaベースのコマンドラインツールを開発中です。私は、slf4jのログ抽象化を利用したいと思います。アプリケーションは、定期的にJavaコマンドラインツール、冗長出力フラグ

java -jar myapp.jar someparameter 

は、アプリケーションのようなstdoutの「プレーン」CLI出力を与えるものと呼び出され

:アプリケーションが追加で呼び出される代わりに

/some/file1 
/some/file2 


--verboseフラグ/オプション

java -jar myapp.jar --verbose someparameter 

次いで、アプリケーションは、より高度なロギング与えなければならない:--verboseが提供されたかどうかを決定することは容易であるものの

16:06:09.031 [main] DEBUG com.example.MyApp - Starting application. 
16:06:09.031 [main] DEBUG com.example.MyApp - Entering directory /some/. 
16:06:09.046 [main] INFO com.example.MyApp - /some/file1 
16:06:09.046 [main] INFO com.example.MyApp - /some/file2 


(例えば)jCommander CLIライブラリを使用することにより、SLF4Jは、実行時にルートロガーレベルを設定できるようにしていないよう、またSLF4Jは、実行時にログエントリのパターンレイアウトを変更することができません。

  • 両方のログレベルを変更すると、実行時にエントリーパターンレイアウトをログに記録するためのオプション(または起動中に少なくとも)私は左のですか?
  • は私がSLF4J抽象化レイヤーを使用しての私の高貴な立場を控え、代わりに、実際の根本的なロギング実装を使用しなければならない
  • 他のJavaベースましたか(... logbackslf4j2、それをすること)コマンドラインツールはこの課題を解決しますか?

答えて