2017-07-26 6 views
0

LogBackをJavaで使用している小さなクエリがあり、フォーラムの誰かが私のために解決策を用意してくれることを願っています。logbackプログラムで新しいログインスタンスを作成する

私はいくつかのテストを行っています。これらのテストは、シングルまたはマルチで実行できます。私が倍数でそれらを実行しているときに私は問題を取得します。私は、テストケースの名前に応じて変更するファイルを記録したい。たとえば、テストを10回実行してid 1をテストすると、2回のテストが終了してテストが開始されると、それがログファイルに反映され、ID 2の2番目のログファイルが作成されます。

それは理にかなっており、さらに質問がある場合はお気軽にお問い合わせください。

ありがとうございます。

答えて

1

LogbackのSiftingAppenderを使用できます。

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

    <appender name="SIFTER" class="ch.qos.logback.classic.sift.SiftingAppender"> 
     <discriminator> 
      <key>testName</key> 
      <defaultValue>UNKNOWN</defaultValue> 
     </discriminator> 
     <sift> 
      <appender name="FILE-${testName}" class="ch.qos.logback.core.FileAppender"> 
       <file>test-${testName}.log</file> 
       <layout class="ch.qos.logback.classic.PatternLayout"> 
        <pattern>...</pattern> 
       </layout> 
      </appender> 
     </sift> 
    </appender> 

    <root level="ALL"> 
     <appender-ref ref="SIFTER" /> 
    </root> 
</configuration> 

ログファイル名には、testNameの値が代入されます。 はorg.slf4j.MDCで設定します。例えば;

String testName = "..."; 
MDC.put("testName", testName); 

// run your test 
// ... 

// remove the test name from MDC ready for the next test to set its own name 
MDC.remove("testName"); 

あなたは、現在のテスト名を取得してから入れ/ @Before@After方法で削除するJUnit4のTestName Ruleを使用することができます。

+0

Hey Glitch、コメントありがとう、コードベースでこれを試してみて、それがどう動いているかを見てみましょう。よろしく、 –

+0

ちょっとグリッチ、完璧な男だった、ありがとう。私はSiftingAppenderを認識していませんでしたが、今はソートしました。再びありがとう –

+0

あなたはようこそ... – glytching

関連する問題