簡體   English   中英

Log4j2 - 除Spring之外的調試級日志記錄

[英]Log4j2 - debug-level logging except for Spring

我希望我的應用程序在Debug級別運行,但Spring除外,因為Spring會生成大量的日志記錄語句,這使得難以通讀日志。 我目前配置了我的Log4j2文件,如下所示:

<Configuration status="debug">
    <Appenders>
        <RollingFile name="systemLog" fileName="C:/test/logs/system.log" includeLocation="true"
                    filePattern=""C:/test/logs/system-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout pattern="%d{ISO8601} - %-5level [%t] %C %M %m%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="15 MB"/>
            </Policies>
        </RollingFile>
        <Async name="systemAsyncAppender" includeLocation="true">
            <AppenderRef ref="systemLog" />
        </Async>
    </Appenders>
    <Loggers>
        <SpringLogger name="org.springframework.*" level="error" additivity="false">
            <AppenderRef ref="systemAsyncAppender" />
        </SpringLogger>
        <Root level="debug" includeLocation="true">
            <AppenderRef ref="systemAsyncAppender" />
        </Root>
    </Loggers>
</Configuration>

我認為設置SpringLogger會將Spring設置為僅在ERROR級別運行,並且寫入與其他所有內容相同的日志,但我仍然看到完整的Spring DEBUG輸出。 我有一個模糊的記憶,能夠使用舊的log4j.properties文件很容易地做到這一點(我認為它就像log4j.category.org.springframework=ERROR一樣簡單),但我不知道如何用Log4J2做到這一點。

(使用Log4J2 2.0.2,spring 3.2.11)

我不認為log4j2對Spring有任何特殊配置,所以<SpringLogger>在這里似乎不合適。

相反,只需聲明一個常規記錄器

<logger name="org.springframework" level="error" additivity="false">
    ...
</logger>

另請注意記錄器名稱。 這些是分層的。 你不需要* (我認為它實際上打破了它)。

暫無
暫無

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

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