プロジェクトで初めてlog4jを使用しています。仲間のプログラマーは、使用System.out.println
は悪いスタイルと見なされており、log4j は最近のログ記録の標準のようなものだと私に言いました。
私たちは多くの JUnit テストを行っていますが、テストSystem.out
が難しいことが判明しています。
そのため、コンソール コントローラー クラスに log4j を利用し始めました。これは、コマンド ライン パラメーターを処理するだけです。
// log4j logger config
org.apache.log4j.BasicConfigurator.configure();
Logger logger = LoggerFactory.getLogger(Console.class);
Category cat = Category.getRoot();
うまくいくようです:
logger.debug("String");
プロデュース:
1 [main] DEBUG project.prototype.controller.Console - String
これに関して2つの質問があります:
- 私の基本的な理解から、このロガーを使用すると、ロガーでデバッグモードが有効になっている場合、コンソールをスパムする代わりに、タイムスタンプ付きのログファイルを書き込むための快適なオプションが提供されるはずですか?
- System.out.println のテストが難しいのはなぜですか? stackoverflow を検索したところ、テスト レシピが見つかりました。では、log4j を使用することで、実際にどのような利点が得られるのだろうか。