我想记录包含"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"/>