过滤掉 Log4j2 文件中的 Hibernate 日志
Filtering out Hibernate logs in Log4j2 file
我有一个 log4j2.xml 文件如下。它正在运行,但它正在获取大量 Hibernate 和 GWT 日志文件。我怎样才能排除这些包,或者我怎样才能让我的日志文件只包含来自我的包层次结构的日志记录?
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<File name="FileAllLogs" fileName="logs/MyProj_all.txt" immediateFlush="true" append="true">
<PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
<File name="FileAllErrors" fileName="logs/MyProj_errors.txt" immediateFlush="true" append="true">
<PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console" />
<AppenderRef ref="FileAllLogs"/>
</Root>
<Root level="error">
<AppenderRef ref="FileAllErrors"/>
</Root>
</Loggers>
</Configuration>
删除您的 "debug" 根记录器。然后添加以下记录器,它将仅记录来自给定 "some.dummy.package"
的日志
<logger name="some.dummy.package" level="debug" additivity="false">
<AppenderRef ref="Console" />
<AppenderRef ref="FileAllLogs"/>
</logger>
所以最后你会得到
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<File name="FileAllLogs" fileName="logs/MyProj_all.txt" immediateFlush="true" append="true">
<PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
<File name="FileAllErrors" fileName="logs/MyProj_errors.txt" immediateFlush="true" append="true">
<PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="FileAllErrors"/>
</Root>
<Logger name="some.dummy.package" level="debug" additivity="false">
<AppenderRef ref="Console" />
<AppenderRef ref="FileAllLogs"/>
</Logger>
</Loggers>
</Configuration>
我有一个 log4j2.xml 文件如下。它正在运行,但它正在获取大量 Hibernate 和 GWT 日志文件。我怎样才能排除这些包,或者我怎样才能让我的日志文件只包含来自我的包层次结构的日志记录?
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<File name="FileAllLogs" fileName="logs/MyProj_all.txt" immediateFlush="true" append="true">
<PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
<File name="FileAllErrors" fileName="logs/MyProj_errors.txt" immediateFlush="true" append="true">
<PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console" />
<AppenderRef ref="FileAllLogs"/>
</Root>
<Root level="error">
<AppenderRef ref="FileAllErrors"/>
</Root>
</Loggers>
</Configuration>
删除您的 "debug" 根记录器。然后添加以下记录器,它将仅记录来自给定 "some.dummy.package"
的日志<logger name="some.dummy.package" level="debug" additivity="false">
<AppenderRef ref="Console" />
<AppenderRef ref="FileAllLogs"/>
</logger>
所以最后你会得到
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<File name="FileAllLogs" fileName="logs/MyProj_all.txt" immediateFlush="true" append="true">
<PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
<File name="FileAllErrors" fileName="logs/MyProj_errors.txt" immediateFlush="true" append="true">
<PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="FileAllErrors"/>
</Root>
<Logger name="some.dummy.package" level="debug" additivity="false">
<AppenderRef ref="Console" />
<AppenderRef ref="FileAllLogs"/>
</Logger>
</Loggers>
</Configuration>