2016-12-11 3 views
0

私はとtestngを使用しており、ログにはlog4j2を使用しています。テストを個別に実行すると、テストごとにログファイルが作成され、datetime stampを含むunique nameのディレクトリに配置されます。Log4j2がTestNgを使用している場合、後続のログファイルを作成しません

たとえば、test01を実行すると、ディレクトリがdatetimeで作成され、ログファイルがそのディレクトリに配置されます。私は別にtest02を実行すると、新しいディレクトリは、日時やテスト名と、ログファイルに基づいて作成され

2016-12-10-21-16-04 tst_01 
tst_01.log 

は、新しいディレクトリに追加されます。

2016-12-10-21-16-42 tst_02 
tst_02.log 

私はtestngを使ってテストスイートを実行します。最初のテストのディレクトリに1つのログファイルが追加されますが、no log file that appears in the second directoryが存在します。

また、最初のテストのディレクトリに終わるログファイルには、the log statements for the first test as well as the second testが含まれています。

コード例:

public class TestLog{ 
    private static final Logger TestLog = LogManager.getLogger(TestLog.class.getName()); 
    public static void info(String message){ 
    TestLog.info(message); 
    } 
} 

質問:はどのように私はTestNGのを使用してテストを実行しているときに、新しいログファイルが作成されるのですか?

+0

あなたのコードの一部を共有してください。 –

答えて

0

問題は、実行されたテストごとにlog4j2.xmlファイルが更新されていないことです。答えは、各テストに以下を追加することでした。

((org.apache.logging.log4j.core.LoggerContext) LogManager.getContext(false)).reconfigure(); 

これは基本的にlog4j2.xmlファイルをリロードし、新しい設定を取得します。

回答が見つかった:http://https://stackoverflow.com/questions/28216310/reload-log4j2-configuration-on-demand

関連する問題