`

log4j无法关闭hibernate日志

阅读更多

                 最近部署了一个项目,发现debug日志特别多,打开发现很多都是hibernate里面的日志,很郁闷。查阅了好多资料发现,log4j的日志一般是有一个有限级别的,就是说项目首先会优先使用log4j.xml里面的配置,如果没有log4j.xml文件,那么它会去src下面去找log4j.properties文件里面的配置。我引用的底层框架里面有log4j.xml,我改成了info级别的,项目里面log4j.properties文件也改成了info级别了发现还是有debug日志。找了好久,发现引用了公司的一个不起眼的jar包,里面有个log4j.xml,改掉里面的级别,问题解决。

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>

                                 <prop key="hibernate.show_sql">false</prop>//改成false

<prop key="hibernate.hbm2ddl.auto">none</prop><!-- 关闭检查 -->

<prop key="hibernate.format_sql">false</prop>

<prop key="hibernate.connection.release_mode">after_statement</prop><!-- 事务提交后释放conection -->

</props>

</property>

1.我的log4j.properties配置文件

 

#############################################################################

#    Licensed to the Apache Software Foundation (ASF) under one or more

#    contributor license agreements.  See the NOTICE file distributed with

#    this work for additional information regarding copyright ownership.

#    The ASF licenses this file to You under the Apache License, Version 2.0

#    (the "License"); you may not use this file except in compliance with

#    the License.  You may obtain a copy of the License at

#

#       http://www.apache.org/licenses/LICENSE-2.0

#

#    Unless required by applicable law or agreed to in writing, software

#    distributed under the License is distributed on an "AS IS" BASIS,

#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

#    See the License for the specific language governing permissions and

#    limitations under the License.

#############################################################################

# Please don't modify the log level until we reach to acceptable test coverage.

# It's very useful when I test examples manually.

log4j.rootCategory=INFO, stdout

 

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

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

#log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %p [%c] - %m%n

 

# you could use this pattern to test the MDC with the Chat server

log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %t %p %X{name} [%X{user}] [%X{remoteAddress}] [%c] - %m%n

 

2.log4j.xml文件配置

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

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

 

<!-- ==========================自定义输出格式说明================================ -->

<!-- [%d{yyyy-MM-dd HH:mm:ss,SSS} %r %-5p] %m [%c:%l:%L]\n -->

<!-- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL -->

<!-- %r 输出自应用启动到输出该log信息耗费的毫秒数 -->

<!-- %c 类的全名 -->

<!-- %t 输出产生该日志事件的线程名 -->

<!-- %n 输出一个回车换行符 -->

<!-- %d 2012-01-01 00:00:00,000 -->

<!-- %L 输出所在类 行数 -->

<!-- %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10) -->

<!-- ========================================================================== -->

 

<!-- ==========================输出方式说明===================================== -->

<!-- framework提供的appender有以下几种: -->

<!-- org.apache.log4j.ConsoleAppender(控制台), -->

<!-- org.apache.log4j.FileAppender(文件), -->

<!-- org.apache.log4j.RollingFileAppender(每天产生一个日志文件), -->

<!-- org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), -->

<!-- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) -->

<!-- ========================================================================== -->

 

<!-- ==========================日志文件说明===================================== -->

<!-- 1.默认日志级别是debug -->

<!-- 2.控制台只输出info,error级别数据 -->

<!-- 3.日志文件分三个级别:info,debug,error 分别记录:详情信息,普通信息,错误信息 -->

<!-- ========================================================================== -->

 

<!-- appender的配置信息 -->

<!-- 控制台 -->

<appender name="framework_console" class="org.apache.log4j.ConsoleAppender">

<param name="Target" value="System.out" />

<param name="ImmediateFlush" value="true" />

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss,SSS} %r %-5p] %m [%c:%l:%L]\n" />

</layout>

<filter class="org.apache.log4j.varia.LevelRangeFilter">

<param name="LevelMin" value="INFO" />

<param name="LevelMax" value="ERROR" />

</filter>

</appender>

 

<!-- 详细日志 debug、INFO -->

<appender name="framework_debug" class="org.apache.log4j.RollingFileAppender">

<param name="File" value="./dlongLogs/frameworkDebug.log" />

<param name="Append" value="true" />

<param name="encoding" value="UTF-8" />

<param name="maxFileSize" value="20MB" />

<param name="maxBackupIndex" value="10" />

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss,SSS} %r %-5p] %m [%c:%l:%L]\n" />

</layout>

<filter class="org.apache.log4j.varia.LevelRangeFilter">

<param name="LevelMin" value="DEBUG" />

<param name="LevelMax" value="INFO" />

</filter>

</appender>

 

<!-- 信息日志 info、WARN -->

<appender name="framework_info" class="org.apache.log4j.RollingFileAppender">

<param name="File" value="./dlongLogs/frameworkInfo.log" />

<param name="Append" value="true" />

<param name="encoding" value="UTF-8" />

<param name="maxFileSize" value="20MB" />

<param name="maxBackupIndex" value="5" />

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss} %r] %m \n" />

</layout>

<filter class="org.apache.log4j.varia.LevelRangeFilter">

<param name="LevelMin" value="INFO" />

<param name="LevelMax" value="WARN" />

</filter>

</appender>

 

<!-- 错误日志 error、FATAL-->

<appender name="framework_error" class="org.apache.log4j.RollingFileAppender">

<errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler" />

<param name="File" value="./dlongLogs/frameworkError.log" />

<param name="Append" value="true" />

<param name="encoding" value="UTF-8" />

<param name="maxFileSize" value="20MB" />

<param name="maxBackupIndex" value="5" />

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss,SSS} %r %-5p] %m [%c:%l:%L]\n" />

</layout>

<filter class="org.apache.log4j.varia.LevelRangeFilter">

<param name="LevelMin" value="ERROR" />

<param name="LevelMax" value="FATAL" />

</filter>

</appender>

 

<!-- hibernate 增加appender处理hibernate 生成的SQL语句 -->

<!-- <appender name="hibernate_console" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out" /> <param name="ImmediateFlush" value="true" /> <layout class="org.apache.log4j.PatternLayout"> 

<param name="ConversionPattern" value="%m\n" /> </layout> </appender> -->

<appender name="HibernateLoggerMonitor" class="cn.innosoft.fw.biz.logging.biz.model.HibernateSQLLoggerMonitorAppender">

<errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler" />

</appender>

 

<!-- hibernate -->

<logger name="org.hibernate.SQL">

<level value="info" />

<!-- <appender-ref ref="hibernate_console" /> -->

<appender-ref ref="HibernateLoggerMonitor" />

</logger>

 

<root>

<level value="info" />

<appender-ref ref="framework_console" />

<appender-ref ref="framework_debug" />  //干掉这个,debug日志就没了。。。

<appender-ref ref="framework_info" />

<appender-ref ref="framework_error" />

</root>

 

<category name="org.hibernate">

       <priority value="ERROR"/>

    </category>

    

    <category name="net.sf.ehcache">

       <priority value="ERROR"/>

    </category> 

 

</log4j:configuration>

 

 

分享到:
评论

相关推荐

    Tomcat使用Log4j输出catalina.out日志

    通过以上步骤,Tomcat服务器将使用Log4j来管理catalina.out日志,这不但解决了日志文件过大和格式不统一的问题,而且提供了更丰富的日志管理功能,例如,可以利用Log4j强大的过滤、路由和格式化等功能,将日志管理得...

    springmvc spring3 hibernate4 log4j

    标题中的"springmvc spring3 hibernate4 log4j"代表了一个基于Java的Web开发框架的组合,主要包括Spring MVC、Spring 3、Hibernate 4和Log4j四个关键组件。这四个技术是Java后端开发中非常重要的工具,下面将详细...

    log4j.xml文件的配置文.pdf

    #### 二、Log4j与Hibernate日志控制 ##### 1. 日志输出过多的问题 在JBOSS环境中运行应用程序时,Hibernate会默认输出大量的日志信息到指定的日志文件中(例如`D:\jboss-4.0.2\server\default\log\server.log`)。...

    java log4j 应用

    - Log4j可以方便地与Spring、Hibernate等框架集成,提供统一的日志管理。 10. **最新版本Log4j2**: - Log4j的最新版本是Log4j2,它引入了许多新特性,如异步日志记录、插件体系结构和更强大的配置选项。 综上所...

    log4j的学习笔记

    - Log4j 可以与 Spring、Hibernate 等框架集成,简化日志配置。 学习Log4j不仅需要理解上述概念,还要实践操作,通过实际项目经验积累对日志管理的深入理解。通过配置和使用Log4j,开发者可以更好地管理和监控他们...

    总结的一些关于log4j的文章

    jboss下通过配置log4j.xml实现web应用的日志.htm log4j.xml log4j.xml配置文件设置.doc Log4J快速入门.htm pwosboy -JavaEye技术社区.htm 将系统日志发布到多个文件.htm 请问怎么控制日志的输出啊.htm 怎样关闭...

    Log4j

    11. **与其他框架的集成** - Log4j 可与许多其他Java框架集成,如 Spring、Struts 和 Hibernate,使得日志记录变得简单统一。 12. **安全性** - 在2021年,Log4j 2 发现了一个严重漏洞(CVE-2021-44228,也被称为...

    jar 包hibernate-distribution-3.3.2 slf4j-1.5.8.zip

    SLF4J是一个日志门面,它提供了一种统一的接口,允许开发者在运行时绑定不同的日志实现,如Log4j、Java Util Logging、Logback等。SLF4J 1.5.8版本提供了更稳定和高效的服务。通过使用SLF4J,开发者可以在不修改代码...

    slf4j-1.7.2.zip

    通过SLF4J,Hibernate的日志可以轻松地与任何兼容的SLF4J实现集成,如Logback或Log4j。 6. **版本更新**:SLF4J 1.7.2是一个较旧的版本,可能缺少一些新版本提供的特性或优化。例如,当前的稳定版本可能是1.7.x系列...

    hibernate显示不带?的完整sql

    此外,还需要引入一个日志框架,如Log4j或SLF4J,以获取更详细的日志输出。如果你选择Log4j,确保在类路径中有`log4j.properties`文件,并包含以下配置: ```properties log4j.logger.org.hibernate.SQL=DEBUG log4...

    hibernate开发核心5.2jar包 带mysql驱动

    在这个压缩包中,包含的是用于开发的Hibernate核心库以及适用于MySQL数据库的驱动,同时整合了log4j日志框架,这些都是构建高效、稳定且可维护的JavaWeb应用的基础组件。 1. Hibernate 5.2:作为ORM框架的领导者,...

    hibernate 需要jar包

    这个压缩包中的Hibernate JAR文件包含了运行和开发基于Hibernate的Java应用程序所需的所有库,包括核心库、JDBC驱动、日志系统以及可能的Spring和SpringMVC的集成支持。使用这些库,开发者可以轻松地进行数据库操作...

    springboot+logback输出日志文件1

    如果我们想使用 Log4J2 作为日志记录工具,我们需要去除 Logback JAR 并且在类路径中加入 Log4J2 的依赖。 例如,我们可以在 pom.xml 文件中添加以下依赖项: &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;...

    hibernate入门小示例

    1. **log4j.properties或log4j.xml**:配置Log4j的日志级别、输出格式和目标(控制台、文件等)。 2. **在代码中使用Logger**:通过`import org.apache.log4j.Logger;`导入Logger类,在需要记录日志的地方调用其方法...

    hibernate 4.3.10 版本的笔记

    - 在`lib\jpa`目录下,加入对SLF4J和Log4j的支持库文件,如`slf4j-api-*.jar`, `slf4j-log4j12-*.jar` 和 `log4j-*.jar`。 - 配置Hibernate使用的日志框架为SLF4J。 **步骤三:Hibernate配置文件(hibernate.cfg....

    hibernate学习笔记.

    - **日志配置**:使用Log4J进行日志记录,加入相应的jar包,并配置log4j.properties文件。 - **Slf4j桥接**:Slf4j是一个日志API,而Log4j是它的实现之一。使用slf4j-log4j12.jar作为适配器将Slf4j与Log4j连接。 ...

    hibernate3的相关jar包

    在这里,slf4j-log4j12.jar是SLF4J与Log4J的具体绑定,用于实现日志记录。 此外,可能还有其他一些可选的jar包,比如用于特定数据库驱动(如mysql-connector-java.jar)的驱动库,或者是用于其他高级功能如缓存...

    spring4+Hibernate4+Struts2.3开发网站应用

    综合以上,这个项目使用SSH框架搭建了一个完整的Java Web应用程序,集成了数据库操作、业务逻辑处理和视图展示,同时利用c3p0优化数据库连接管理和log4j实现日志记录,确保了项目的稳定性和可维护性。对于开发者来说...

    hibernate入门教程

    需要注意的是,虽然Log4j不是必需的,但很多开发者出于日志记录的目的会选择使用它。 要搭建Hibernate环境,开发者需要创建一个JavaBean类,该类代表希望存储在数据库中的对象。这个类会包含一些属性,每个属性都...

Global site tag (gtag.js) - Google Analytics