0

ロギングで使用される Maven ベースの Java ライブラリを作成しています。これは次のとおりです。

    import java.util.logging.Logger;
    private static final Logger LOG 
        = Logger.getLogger(MyLibraryClass.class.getName())

このライブラリに非常に多くのログをコーディングしました。これは、特に JUnit テスト中にライブラリのフローをデバッグするのに非常に役立ちますが、作成したこのアプリでは、クライアント アプリケーション (アプリケーション) にログを表示したくありません。このライブラリを使用します)。冗長すぎるので。

クライアント アプリケーションのログ ビューに記録されるログを制御するにはどうすればよいですか。ライブラリからのようなログINFO levelは、必ずしもクライアント/サンプル アプリに表示されるわけではありませんか?

これが私の最終的な目標です。

  • ライブラリ プロジェクトで単体テストを実行するときに、できるだけ詳細なログを作成するには
  • ただし、これらの「詳細な」ログをクライアント アプリケーションに表示しないでください。クライアント アプリケーションがライブラリからのログを意図的に構成/抑制する必要はありません。

クライアント ライブラリ- Java アプリケーションで使用されるプロジェクトです。これは私が取り組んでいるプロジェクトです。これにより、クライアント アプリケーションに表示されるべきではないログが生成されます。

クライアント アプリケーション- Java ライブラリを使用するプロジェクト/アプリケーションです。

4

4 に答える 4

1

Client-App には独自のテストが必要です。とにかくClient-Appに問題がある場合(単なる行き止まりの状況)、Client-libをリリースしてはならない理由がわかりません。

2 つの Maven プロジェクトが表示されます。

  • ライブラリ (ライブラリ テストあり)
  • ライブラリに依存する Client-App (Client-App-Tests を使用)

したがって、ライブラリにはnoop-config-fileがあります

/src/test/java/resources/logging.properties 

そしてClient-Appではnoop-config-file

/src/main/java/resources/logging.properties

このような noop-config は次のようになります。

handlers= java.util.logging.ConsoleHandler
level= SEVERE
于 2013-06-06T06:46:02.280 に答える
1

あなたがこれを探しているかどうかわかりません

 LOGGER.setLevel(Level.INFO); 
于 2013-06-06T05:40:12.987 に答える
0

log4j.properties または log4j.xml でログ レベルを構成する

単体テストには個別の log4j.properties を使用してください。

maven では、log4j.properties または log4j.xml ファイルを src/test/resources に配置します。

または、junit の実行時に CLI プロパティを使用する

-Dlog4j.configuration=<path to properties file>
于 2013-06-06T05:52:07.383 に答える