簡體   English   中英

如何檢查我的 Junit 測試是否選擇了 log4j2-test.xml 配置?

[英]How to check my Junit test is picking the log4j2-test.xml config or not?

我在我的項目中編寫了一些單元測試我想更改單元測試的日志記錄行為所以我在 src/test/resources 中創建了一個 log4j2-test.xml 但我看不到我的日志記錄行為有任何變化。 我想檢查我的測試文件是否識別此配置。 有什么辦法嗎?

這是代碼片段。

這是 log4j2-test.xml 文件的代碼

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %c:%L - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="error" >
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

這是示例測試代碼

@Slf4j
@Test
public void sampleTest()
{
log.info("Hello World");
log.error("Bye World")
assertEquals(1*5,5);
}

理想的行為應該是打印“Bye world”日志而不是“Hello World”日志,但我總是看到這兩個日志。 有什么方法可以檢查我的測試是否選擇了該配置?

要檢查選擇了哪種配置,有兩種方法:

  1. 在您的 log4j2-test.xml 文件中,您只需將 Configuration 標記的狀態設置為 TRACE,它就會將內部 Log4j2 日志記錄打印到控制台,包括在找到配置文件之前發生的內部日志記錄。
  2. 您也可以通過將 VM arguments 設置為通過 IntelliJ 運行您的應用程序

-Dlog4j2.debug=true

根據 log4j2 官方文檔

應記錄到控制台的內部 Log4j 事件的級別。 此屬性的有效值為“off”、“trace”、“debug”、“info”、“warn”、“error”、“fatal”和“all”。 Log4j 會將有關初始化、翻轉和其他內部操作的詳細信息記錄到狀態記錄器中。 如果您需要對 log4j 進行故障排除,設置 status="trace" 是您可以使用的首批工具之一。
或者,設置系統屬性 log4j2.debug 也會將內部 Log4j2 日志記錄打印到控制台,包括在找到配置文件之前發生的內部日志記錄。

文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM