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]テストクラス単位でログレベル変更

Last updated at Posted at 2024-12-09
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.slf4j.LoggerFactory;

public class LogbackLogLevelTestClass {

    private static Level originalLevel;

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

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

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

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

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

解説
@BeforeClass を使用:

テストクラス全体で共通のセットアップを行います。
ここで対象のロガーのログレベルを変更します。
@AfterClass を使用:

テストクラス全体の終了後に元のログレベルに戻します。
テスト間の影響を防ぐために必ずログレベルを元に戻します。
テストメソッド間のログレベル統一:

クラス全体のログレベルが統一されるため、各テストメソッドでログレベルを気にする必要がありません。

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?