我有一个log4j2.xml,如下:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
<Property name="dir" value="/var/log/sunverge" />
<Property name="file" value="maggie.log" />
<Property name="eatonemcbfile" value="eaton.log" />
</Properties>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d{ISO8601} %5p [%t] %c - %m%n" />
</Console>
<RollingFile name="file" fileName="${dir}/${file}"
filePattern="${dir}/${file}.%d{yyyy-MM-dd}">
<PatternLayout>
<Pattern>%d{ISO8601} %5p [%t] %c - %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" />
</Policies>
</RollingFile>
<RollingFile name="eaton"
fileName="${dir}/${eatonemcbfile}"
filePattern="${dir}/${eatonemcbfile}.%d{yyyy-MM-dd}">
<PatternLayout>
<Pattern name="ConversionPattern"> %d{ISO8601} %5p [%t] %c - %m%n</Pattern>
</PatternLayout>
<ThresholdFilter level="debug"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="warn">
<AppenderRef ref="file" />
</Root>
<logger name="com.sunverge.devices.eaton.emcb" level="info">
<AppenderRef ref="eaton" />
<AppenderRef ref="file" />
</logger>
</Loggers>
</Configuration>
因此,我将eaton.log的阈值设置为要调试,但它们两个都记录了调试级别。由于某些原因,我不想为其他文件添加ThresholdFilter标记。任何帮助表示赞赏。
答案 0 :(得分:0)
您不应将调试日志获取到任何文件,因为没有记录器被配置为接受调试消息。如果您在文件中看到它们,则说明未使用此配置。您可以通过将status =“ debug”添加到配置元素并查看Log4j正在配置的内容来验证是否正在使用它。如果看不到log4j调试输出,则表明该配置文件未使用。您还可以将-Dlog4j2.debug = true添加到命令行,这将导致输出log4j日志。您可以检查一下配置的来源。
我建议将您的配置更改为:
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d{ISO8601} %5p [%t] %c - %m%n" />
</Console>
<RollingFile name="file" fileName="${dir}/${file}"
filePattern="${dir}/${file}.%d{yyyy-MM-dd}">
<PatternLayout>
<Pattern>%d{ISO8601} %5p [%t] %c - %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" />
</Policies>
</RollingFile>
<RollingFile name="eaton"
fileName="${dir}/${eatonemcbfile}"
filePattern="${dir}/${eatonemcbfile}.%d{yyyy-MM-dd}">
<PatternLayout>
<Pattern name="ConversionPattern"> %d{ISO8601} %5p [%t] %c - %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="warn">
<AppenderRef ref="file" />
</Root>
<logger name="com.sunverge.devices.eaton.emcb" level="debug" additivity="false">
<AppenderRef ref="eaton" level="debug"/>
<AppenderRef ref="file" level="info"/>
</logger>
</Loggers>
</Configuration>