3

我正在为我在 netbeans 中的一个项目制作 log4j.xml。这是它的内容:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
            <param name="file" value="${catalina.home}/logs/MyLogs.log" />
            <param name="DatePattern" value="'.'yyyy-MM-dd" />
            <param name="Threshold" value="INFO" />
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m #]%n" />
            </layout>
        </appender>

    <appender name="sqlLogs" class="org.apache.log4j.DailyRollingFileAppender">
            <param name="file" value="${catalina.home}/logs/MySqlLogs.log" />
            <param name="DatePattern" value="'.'yyyy-MM-dd" />
            <param name="Threshold" value="TRACE" />
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
            </layout>
        </appender>    

    <root>
            <level value ="INFO" />    
            <appender-ref ref="FILE" />
    </root>

    <logger name="org.hibernate.SQL" additivity="false" >
            <level value="DEBUG" />
            <appender-ref ref="sqlLogs" />
    </logger>


</log4j:configuration>

现在我希望 sql 日志只转到 MySqlLogs.log 但它们同时出现在 MySqlLogs.log 和 catalina.out 上。catalina.out 中的日志格式为

Hibernate : select ....
Hibernate : insert into ....

任何人都可以帮我解决这个问题。

4

2 回答 2

2

您可以在您的环境共享属性上停止它。

hibernate.show_sql=true
于 2015-07-15T11:46:17.637 回答
-2

您必须在 hibernate_cfg.xml 文件中添加以下行

show_sql to false

并在您的文件 logging.properties 中:

log4j.logger.org.hibernate=debug

log4j.logger.org.hibernate.type=trace

log4j.logger.org.apache=debug
于 2018-06-07T08:39:03.587 回答