Catalina.out中的控制SQL日志记录级别



我们的应用程序在tomcat 8和linux上运行。我们有log4j.xml发货的战争,该战争控制着我们的应用程序记录的日志记录级别。log4j还定义了SQL的记录级别。

在hibernate.cfg.xml中," hibernate.show_sql"设置为true。

<property name="hibernate.show_sql">true</property>

in $ catalina_base/conf/conf/logging.properties

所有引用consoleappender:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

被删除,因此除了SQL语句以外,没有发送任何东西。

:" hibernate.show_sql">是的,将所有正在处理的SQL语句发送到Catalina.out - 请注意,Catalina.out是仅在Linux/unix机器上创建的文件。

我读了" Hibernate.show_sql">是,在调试级别上记录SQL语句。问题是我想在错误级别记录这些语句,但不知道如何控制级别?

我读到,SQL记录的该级别可以由log4j.xml控制,但是在log4j.xml中更改它对catalina.out的登录方式没有影响。有人知道如何控制Catalina中的SQL日志记录。

下面是log4j.xml。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
<appender name="mylog" class="org.apache.log4j.RollingFileAppender">        
    <param name="File" value="${catalina.base}/logs/mylog.log" />
    <param name="Threshold" value="TRACE" />
    <param name="Append" value="true" />
    <param name="MaxFileSize" value="300MB" />
    <param name="MaxBackupIndex" value="10" />
    <layout class="it.openutils.log4j.FilteredPatternLayout">
        <param name="ConversionPattern"
            value="%d{ISO8601} %5p [%t] Executor:%X{Executor} Type:%X{Type}     A:%X{Account} C:%X{Campaign} %c{1}:%L - %m%n" />            
    </layout>
</appender>
<logger name="org.hibernate.SQL" additivity="false">
    <level value="ERROR" />
    <appender-ref ref="mylog" />
</logger>
<logger name="org.hibernate">
        <level value="ERROR"/>
</logger>
<logger name="org.hibernate.jdbc.JDBCContext">
        <level value="ERROR"/>
</logger>
<root>
    <level value="info" />
    <appender-ref ref="mylog" />
</root>

,因为无论如何我都找不到为Catalina的错误设置级别。因此,我将log4j.xml中的所有级别更改为返回信息,然后将此属性设置为false in Hibernate.cfg.xml。

<property name="hibernate.show_sql">false</property>

登录一段时间后,我注意到Catalina中没有任何记录。(几乎)我首先要实现的目标。我不知道为什么您是这种情况,以及这些记录级别的定义。但是希望对某人有帮助。

相关内容

  • 没有找到相关文章

最新更新