23

ロギング用のアプリケーションでLog4Jv2.0Beta3を使用していますが、単体テストを実行するとログメッセージが生成されます。ログレベルをCRITICALのようなものに設定する方法についてAPIを確認しましたが、ロガー構成を変更する方法が見つかりませんでした。

実際、私はlog4j2Webサイトでこれを読みました。

Log4j 1.xとは異なり、パブリックLog4j 2 APIは、アペンダーとフィルターを追加、変更、削除したり、構成を操作したりするためのメソッドを公開しないことに注意してください。

そうは言っても。単体テスト内からロギングを無効にする正しい方法は何ですか?

4

3 に答える 3

25

log4j2Webサイトの「TestinginMaven」で答えを見つけまし。推奨される方法は、log4j2-test.xmlファイルをsrc / test/resourcesに配置することです。xmlファイルをこのディレクトリに配置すると、log4j2.xmlの代わりに使用されます。

于 2013-01-04T16:28:45.740 に答える
5

ルートレベルをオフ(<Root level="off"/>)に設定すると、ロギングを無効にできます。

したがって、log4j2.xmlファイルを次の内容のsrc / test/resourcesに配置します。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
    <Loggers>
        <Root level="off"/>
    </Loggers>
</Configuration>

編集:<!DOCTYPE xml>xmlを有効にするために(sprynterからの提案に基づいて)削除されました。

于 2018-11-27T22:32:26.137 に答える
0

現在のモジュールにファイルを配置している限り、@ Jbug@Doveの両方の回答が機能します。src/test/resourcesアプリがライブラリに依存している場合、ライブラリにはテストクラスとリソースが含まれないlog42.xmlため、テストの実行には機能しません。jar

于 2019-11-10T21:37:57.760 に答える