log4j StringMatchFilter configuration



我想记录包含"Here is DEBUG"的消息我的log4j2.xml是这样的:

<Appenders>
    <!-- Console Appender -->
<Console name="console" target="SYSTEM_OUT">
    <PatternLayout pattern="%-5p %c{1} - %m%n" />
</Console>
    <!--RollingFile Appender-->
<RollingFile name="rollingFile"  fileName="${sys:catalina.base}/logs/${project.name}.log" filePattern="${sys:catalina.base}/logs/${project.name}-%i.log">
        <PatternLayout>
            <Pattern>%p %d{dd-MMMMMMMMM-yyyy HH:mm:ss:SSS} %m %n%n</Pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size="500kb" />
        </Policies>
        <DefaultRolloverStrategy max="5" />
</RollingFile>
<filter class="org.apache.log4j.varia.StringMatchFilter">
        <param name="StringToMatch" value="Here is DEBUG" />
        <param name="AcceptOnMatch" value="true" />
</filter>
</Appenders>
<Loggers>
    <Root level="debug">
        <!--AppenderRef ref="console" /-->
        <AppenderRef ref="rollingFile" />
    </Root>
</Loggers>

和我的Java代码是:log.info("这里是DEBUG");log.info("XXXXXXXXXXXX");日志。Warn("这是一个警告");日志。错误("这是一个错误");但我还是把所有东西都写进了日志

好吧,我明白了。Log4j 1和Log4j 2在配置上非常不同。在第二行中,过滤器应该看起来像

<RegexFilter regex="DEBUG .*" onMatch="ACCEPT" onMismatch="DENY"/>

最新更新