0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

(調査中)[JUnit4]テストメソッド単位でログレベル変更

Posted at
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.LoggerFactory;

public class LogbackLogLevelTest {

    private Level originalLevel;

    @Before
    public void setUp() {
        // ロガーを取得
        Logger logger = (Logger) LoggerFactory.getLogger("com.example"); // ロガー名を指定
        originalLevel = logger.getLevel(); // 元のレベルを保存

        // ログレベルをDEBUGに変更
        logger.setLevel(Level.DEBUG);
        System.out.println("Log level set to DEBUG for test setup.");
    }

    @After
    public void tearDown() {
        // 元のレベルに戻す
        Logger logger = (Logger) LoggerFactory.getLogger("com.example");
        logger.setLevel(originalLevel);
        System.out.println("Log level reverted to original.");
    }

    @Test
    public void testExample() {
        Logger logger = (Logger) LoggerFactory.getLogger("com.example");
        logger.debug("This is a debug message.");
        logger.info("This is an info message.");
    }
}

解説
Logger の取得: LoggerFactory.getLogger() を使用して、対象のロガーを取得します。
元のログレベルを保存: @Before メソッドで変更前のログレベルを保存しておきます。
ログレベルの変更: setLevel() を使用してログレベルを動的に変更します。
元に戻す: @After メソッドでログレベルを元に戻します。

注意点
ロガー名(例: "com.example")は、対象のテストコードに応じて変更してください。
テストケース間でログレベルを変更すると他のテストに影響する可能性があるため、必ず @After で元に戻す処理を追加してください。
他のログフレームワークや設定ファイルに依存している場合、この方法が正しく動作しない場合があります。その場合は Logback の設定ファイルを動的に読み込む方法も検討してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?