最近部署了一个项目,发现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日志,这不但解决了日志文件过大和格式不统一的问题,而且提供了更丰富的日志管理功能,例如,可以利用Log4j强大的过滤、路由和格式化等功能,将日志管理得...
标题中的"springmvc spring3 hibernate4 log4j"代表了一个基于Java的Web开发框架的组合,主要包括Spring MVC、Spring 3、Hibernate 4和Log4j四个关键组件。这四个技术是Java后端开发中非常重要的工具,下面将详细...
#### 二、Log4j与Hibernate日志控制 ##### 1. 日志输出过多的问题 在JBOSS环境中运行应用程序时,Hibernate会默认输出大量的日志信息到指定的日志文件中(例如`D:\jboss-4.0.2\server\default\log\server.log`)。...
- Log4j可以方便地与Spring、Hibernate等框架集成,提供统一的日志管理。 10. **最新版本Log4j2**: - Log4j的最新版本是Log4j2,它引入了许多新特性,如异步日志记录、插件体系结构和更强大的配置选项。 综上所...
- Log4j 可以与 Spring、Hibernate 等框架集成,简化日志配置。 学习Log4j不仅需要理解上述概念,还要实践操作,通过实际项目经验积累对日志管理的深入理解。通过配置和使用Log4j,开发者可以更好地管理和监控他们...
jboss下通过配置log4j.xml实现web应用的日志.htm log4j.xml log4j.xml配置文件设置.doc Log4J快速入门.htm pwosboy -JavaEye技术社区.htm 将系统日志发布到多个文件.htm 请问怎么控制日志的输出啊.htm 怎样关闭...
11. **与其他框架的集成** - Log4j 可与许多其他Java框架集成,如 Spring、Struts 和 Hibernate,使得日志记录变得简单统一。 12. **安全性** - 在2021年,Log4j 2 发现了一个严重漏洞(CVE-2021-44228,也被称为...
SLF4J是一个日志门面,它提供了一种统一的接口,允许开发者在运行时绑定不同的日志实现,如Log4j、Java Util Logging、Logback等。SLF4J 1.5.8版本提供了更稳定和高效的服务。通过使用SLF4J,开发者可以在不修改代码...
通过SLF4J,Hibernate的日志可以轻松地与任何兼容的SLF4J实现集成,如Logback或Log4j。 6. **版本更新**:SLF4J 1.7.2是一个较旧的版本,可能缺少一些新版本提供的特性或优化。例如,当前的稳定版本可能是1.7.x系列...
此外,还需要引入一个日志框架,如Log4j或SLF4J,以获取更详细的日志输出。如果你选择Log4j,确保在类路径中有`log4j.properties`文件,并包含以下配置: ```properties log4j.logger.org.hibernate.SQL=DEBUG log4...
在这个压缩包中,包含的是用于开发的Hibernate核心库以及适用于MySQL数据库的驱动,同时整合了log4j日志框架,这些都是构建高效、稳定且可维护的JavaWeb应用的基础组件。 1. Hibernate 5.2:作为ORM框架的领导者,...
这个压缩包中的Hibernate JAR文件包含了运行和开发基于Hibernate的Java应用程序所需的所有库,包括核心库、JDBC驱动、日志系统以及可能的Spring和SpringMVC的集成支持。使用这些库,开发者可以轻松地进行数据库操作...
如果我们想使用 Log4J2 作为日志记录工具,我们需要去除 Logback JAR 并且在类路径中加入 Log4J2 的依赖。 例如,我们可以在 pom.xml 文件中添加以下依赖项: <groupId>org.springframework.boot <artifactId>...
1. **log4j.properties或log4j.xml**:配置Log4j的日志级别、输出格式和目标(控制台、文件等)。 2. **在代码中使用Logger**:通过`import org.apache.log4j.Logger;`导入Logger类,在需要记录日志的地方调用其方法...
- 在`lib\jpa`目录下,加入对SLF4J和Log4j的支持库文件,如`slf4j-api-*.jar`, `slf4j-log4j12-*.jar` 和 `log4j-*.jar`。 - 配置Hibernate使用的日志框架为SLF4J。 **步骤三:Hibernate配置文件(hibernate.cfg....
- **日志配置**:使用Log4J进行日志记录,加入相应的jar包,并配置log4j.properties文件。 - **Slf4j桥接**:Slf4j是一个日志API,而Log4j是它的实现之一。使用slf4j-log4j12.jar作为适配器将Slf4j与Log4j连接。 ...
在这里,slf4j-log4j12.jar是SLF4J与Log4J的具体绑定,用于实现日志记录。 此外,可能还有其他一些可选的jar包,比如用于特定数据库驱动(如mysql-connector-java.jar)的驱动库,或者是用于其他高级功能如缓存...
综合以上,这个项目使用SSH框架搭建了一个完整的Java Web应用程序,集成了数据库操作、业务逻辑处理和视图展示,同时利用c3p0优化数据库连接管理和log4j实现日志记录,确保了项目的稳定性和可维护性。对于开发者来说...
需要注意的是,虽然Log4j不是必需的,但很多开发者出于日志记录的目的会选择使用它。 要搭建Hibernate环境,开发者需要创建一个JavaBean类,该类代表希望存储在数据库中的对象。这个类会包含一些属性,每个属性都...