簡體   English   中英

Log4j2自定義日志級別過濾到不同的文件

[英]Log4j2 custom log level filtering to different files

這是我的log4j屬性文件

<Configuration status="WARN">
<CustomLevels>
    <CustomLevel name="ANALYTICS" intLevel="50" />
</CustomLevels>

<Appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="%d %-7level %logger{36} - %msg%n"/>
    </Console>
    <File name="MyFile" fileName=abc.log">
        <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} - %5p - %c - %m%n" />
    </File>
    <File name="analyticsFile" fileName="efg.log">
        <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} - %5p - %c - %m%n" />
    </File>
</Appenders>
<Loggers>
    <Root level="TRACE">
        <AppenderRef ref="MyFile" level="TRACE" />
        <AppenderRef ref="analyticsFile" level="ANALYTICS" />
    </Root>
</Loggers>
</Configuration>

在這里,我創建了一個自定義日志級別(ANALYTICS = 50),該級別的值低於致命(100)級別。 有2個文件將收集我的所有日​​志。 efg.log收集當前正在運行的所有ANALYTICS級別日志。 abc.log正在收集所有日志以及ANALYTICS日志。 我必須避免在abc.log中寫入ANALYTICS日志。 abc.log應該收集除分析日志以外的所有日志。

需要進行哪些更改?

閾值過濾器在這種情況下會有所幫助

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">

    <CustomLevels>
        <CustomLevel name="ANALYTICS" intLevel="50" />
    </CustomLevels>

    <Appenders>

        <File name="ANALYTICSFILE" fileName="logs/analytics.log">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} - %5p - %c - %m%n" />
        </File>

        <File name="FILE" fileName="logs/app.log">
            <PatternLayout pattern="%d{HH:mm:ss dd.mm} [%t] [%-5level] %logger{36} - %msg %n" />
            <Filters>
                <!--Deny message logged under Analytics log level-->
                <ThresholdFilter level="ANALYTICS"  onMatch="DENY"   onMismatch="NEUTRAL"/>
            </Filters>
        </File>

        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>


    </Appenders>
    <Loggers>
        <Root level="TRACE">
            <AppenderRef ref="FILE" level="TRACE"/>
            <AppenderRef ref="ANALYTICSFILE" level="ANALYTICS"/>
            <AppenderRef ref="CONSOLE"/>
        </Root>
    </Loggers>
</Configuration>

暫無
暫無

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

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