我想使用Log4J将所有与服务器相关的日志(如启动和关闭)记录到一个文件,并将所有与Hibernate SQL相关的日志记录到另一个文件。我试图过滤所有不相关的日志,只看到SQL查询。有任何想法或建议,如果我们有办法实现它吗?
感谢。
答案 0 :(得分:0)
如果您使用两个不同的appender,则可以这样做,如以下配置文件(XML)中所示: 1
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- DEFAULT appender -->
<appender name="DEFAULT" class="org.apache.log4j.FileAppender">
<param name="file" value="default.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="conversionPattern"
value="%d{yyyyMMdd-HHmmss.SSS} %-5p (%c.java:%L).%M - %m%n" />
</layout>
</appender>
<!-- HIBERNATE appender -->
<appender name="HIBERNATE" class="org.apache.log4j.FileAppender">
<param name="file" value="hibernate.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="conversionPattern"
value="%d{yyyyMMdd-HHmmss.SSS} %m%n" />
</layout>
</appender>
<!-- categories -->
<category name="org.hibernate.SQL" additivity="false">
<priority value="DEBUG" />
<appender-ref ref="HIBERNATE" />
</category>
<!-- root -->
<root>
<priority value="INFO" />
<appender-ref ref="DEFAULT" />
</root>
</log4j:configuration>
使用类别(category
),您可以轻松配置appender目标(appender-ref
)以及是否要登录默认的appenders(additivity="false"
)。
备注的
log4j.xml
文件(默认包或resources
目录)