如果在log4j2

时间:2018-10-22 08:56:17

标签: java logging configuration log4j log4j2

我想为信息日志和错误日志维护单独的日志文件。但是我不希望将错误日志写入信息日志文件,即,当level =“ info”时,我不希望将错误日志写入文件。

<RollingFile name="Filer"  fileName="logs/info.log"
        filePattern="logs/info-%d{yyyy-MM-dd}-%i.log">
        <PatternLayout>
            <Pattern>${PATTERN}</Pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" />
            <SizeBasedTriggeringPolicy size="${SIZE}" />
        </Policies>
        <DefaultRolloverStrategy max="5" />
    </RollingFile>

<RollingFile name="App"  fileName="logs/error.log"
        filePattern="logs/error-%d{yyyy-MM-dd}-%i.log">
        <PatternLayout>
            <Pattern>${PATTERN}</Pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" />
            <SizeBasedTriggeringPolicy size="${SIZE}" />
        </Policies>
        <DefaultRolloverStrategy max="5" />
    </RollingFile>
<Loggers>       
    <Logger name="org.pro" level="info" additivity="false">
        <AppenderRef ref="File" level="info" />
        <AppenderRef ref="App" level="error" />
    </Logger>
</Loggers>
<Root level="info" additivity="false">
            <AppenderRef ref="FileAppender" />
</Root>

尽管我能够生成不同的日志文件。正确生成了error.log文件,仅包含错误日志。但是info.log包含信息和错误日志。

1 个答案:

答案 0 :(得分:0)

您必须将<Loggers>分开。

赞:

<Loggers>       
    <Logger name="org.pro" level="INFO" additivity="false">
        <AppenderRef ref="Filer" />
    </Logger>
    <Logger name="org.pro" level="ERROR" additivity="false">
        <AppenderRef ref="App" />
    </Logger>
</Loggers>

以上将在logs/info.log文件中记录INFO,在logs/error.log文件中记录错误。