AdSense

網頁

2025/2/26

Java Log4j2 關閉特定程式的log訊息

在開發環境通常Log4j2的root logger的level是設定為debug,但總是會印出一些不需要的訊息,例如第三方函式庫或框架內的訊息,因此可以透過對想看到訊息的package設定level來調整。


例如下面的root logger輸出console的level是debug,也就是<Root level="debug">的部分,因此logger預設是debug層級的訊息都會印出,所以又在下面針對個別的package設定level為error。例如<Logger name="org.springframework" level="error"></Logger>即為把org.springframework package下的logger level全改為error,只有error層級的訊息才會印出。

log4j2.xml

<Loggers>
    <Root level="debug">
        <AppenderRef ref="Console" />
    </Root>
    <Logger name="org.springframework" level="error"></Logger>
    <Logger name="com.zaxxer.hikari" level="error"></Logger>
    <Logger name="springfox" level="error"></Logger>
    <Logger name="org.hibernate.validator.internal" level="error"></Logger>
</Loggers>

或是反過來將root logger的level設定為error,只針對特定的package,例如我們正在開發的程式package,設定為debug

log4j2.xml

<Loggers>
    <Root level="error">
        <AppenderRef ref="Console" />
    </Root>
    <Logger name="com.abc.demo" level="debug"></Logger>
</Loggers>


沒有留言:

AdSense