将服务器日志记录到一个文件和SQL日志到另一个文件 [英] Logging server logs to one file and SQL logs to another

查看:112
本文介绍了将服务器日志记录到一个文件和SQL日志到另一个文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用Log4J将所有与服务器相关的日志(如启动和关闭)记录到一个文件中,并将所有与Hibernate SQL相关的日志记录到不同的文件中。我试图过滤所有不相关的日志来查看SQL查询。任何想法或建议,如果有一种方式,我们可以实现它?



谢谢。

解决方案

如果您使用两个不同的appender,则可以这样做,如以下配置文件(XML)所示: 1

<?xml version =1.0encoding =UTF-8?>
<!DOCTYPE log4j:configuration SYSTEMlog4j.dtd>
< log4j:configuration xmlns:log4j =http://jakarta.apache.org/log4j/>

<! - DEFAULT appender - >
< appender name =DEFAULTclass =org.apache.log4j.FileAppender>
< param name =filevalue =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 =HIBERNATEclass =org.apache.log4j.FileAppender>
< param name =filevalue =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.SQLadditivity =false>
< priority value =DEBUG/>
< appender-ref ref =HIBERNATE/>
< / category>

<! - root - >
< root>
< priority value =INFO/>
< appender-ref ref =DEFAULT/>
< / root>

< / log4j:配置>

使用类别( category ),您可以轻松配置appender目标( appender-ref ),如果您想登录默认appender( additivity =false


备注


  1. log4j在应用程序的类路径中自动查找 log4j.xml 文件(默认包或资源目录)


I want to log all server related logs (like startup and shutdown) to one file and all Hibernate SQL related logs to a different file using Log4J. I am trying to filter all irrelevant logs to see just the SQL queries. Any idea or suggestions if there is a way we can achieve it?

Thanks.

解决方案

You can do that if you use two different appenders, as is shown in the following configuration file (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>

Using categories (category), you can easily configure the appender destination (appender-ref) and if you want to log in the default appenders (additivity="false").


Notes

  1. log4j look for the log4j.xml file automatically in the classpath of the application (the default package or resources directory)

这篇关于将服务器日志记录到一个文件和SQL日志到另一个文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆