1

プログラムのログ記録に java.util.logging を使用しています。問題は、クラス テスト ケースのインスタンスごとに個別のログ ファイルを作成する必要があることです。たとえば、3 つのテスト ケース オブジェクトがあり、最終的には 3 つのログ ファイルを取得しますが、次のようになります。

テスト ケース #3 にはテスト ケース #3 のログが含まれ、テスト ケース #2 にはテスト ケース 2 および 3 のログが含まれ、テスト ケース #1 にはすべてのテスト ケースのログが含まれます。

これが私のコードです:

public class TestCase {
    TestCase(String tcName){
        this.tcName = tcName;
    }

    Logger log = Logger.getLogger("com.sigmaukraine.trn.autotest.testcase");
    String tcName;
    String scenarioReportDir;
    List<Keyword> kwList = new ArrayList<Keyword>();

public void executeTestCase(){
            //saving log for current test case
            try {
                FileHandler fh;
                String fileName = new StringBuilder(tcName).append(".log").toString();
                // This block configure the logger with handler and formatter
                fh = new FileHandler(scenarioReportDir + fileName);
                log.addHandler(fh);
                SimpleFormatter formatter = new SimpleFormatter();
                fh.setFormatter(formatter);
                log.info("Executing test case: " + tcName);

            } catch (SecurityException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            for(Keyword k : kwList){
                k.executeKeyword();
            }


        }
4

2 に答える 2

0

問題は

log.addHandler(fh);

ハンドラーを追加し続けます。したがって、動作はご覧のとおりです。使用する必要があります

fh.close();
log.removeHandler(fh);

テストケース実行後。

于 2014-02-17T15:08:53.327 に答える