接着整理
业务需求变了,需要用logback框架,替换掉log4j。给出理由是logback比log4j快。怎么快,我这里就不
说了。因为xml做logback日志配置文件的比较多,我这里就用xml
前提,假设你们了解过一点logback,因为我省略了好多注释。比如:为什么没看见spring加载logback
就像http://995998760.iteye.com/blog/2283753这篇文章的第四步,log4j需要spring去加载,因为logback不需要。
1、tomcat容器和logback的结合
在web.xml上加入
<context-param>
<param-name>logbackConfigLocation</param-name>
<param-value>classpath:logback.xml</param-value>
</context-param>
<listener>
<listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>
</listener>
2、logback配置文件(能打印sql日志)
因为mybatis原则上是不支持logback,但是logback是SLF4J的完美实现者(有点像java的接口和实现类感觉)
所以需要在mybatis-config.xml里加上
<setting name="logImpl" value="SLF4J"/>
因为,logback监控java.sql不是很好
就像这句话<logger name="java.sql.Connection" level="DEBUG"/>没有任何作用,不会打印sql语句
所以在mybatis-config.xml里再加上
<setting name="logPrefix" value="dao."/>
这句话的意思是,在所有的SQL映射路径上加上“dao”这个前缀,有点像SQL语句配置文件(***.xml)在“dao”这个虚拟的目录下,具体作用后面讲
logback.xml文件,或者logback-test.xml文件,可以不写(区别log4j日志框架),因为框架检测到没有改配置文件的时候,就会取代码默认条件执行(我试过了,级别是debug,单个文件记录)。我需要多个文件记录日志,所以不采取默认方式,自己配,如下
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder charset="UTF-8"> <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern> </encoder> </appender> <appender name="info" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${catalina.home}/logs/info.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${catalina.home}/logs/info.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> <maxFileSize>20MB</maxFileSize> </rollingPolicy> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${catalina.home}/logs/debug.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${catalina.home}/logs/debug.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> <maxFileSize>60MB</maxFileSize> </rollingPolicy> <!-- 这个得注释掉,因为加上了会重复打印,原因看下面就知道了 --> <!-- <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>DEBUG</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> --> <encoder> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${catalina.home}/logs/error.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${catalina.home}/logs/error.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> <maxFileSize>20MB</maxFileSize> </rollingPolicy> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <!-- 把代码里的日志级别调为debug级别 --> <logger name="com.ihandy.chelenet" level="DEBUG" > <appender-ref ref="info"></appender-ref> <!-- 你们可以试一下 反注释下面的代码会有什么效果吐舌头 --> <!-- <appender-ref ref="debug"></appender-ref> --> <appender-ref ref="error"></appender-ref> </logger> <!-- 就是这个监控了mybatis日志输出,配合上面的“dao” --> <logger name="dao" level="DEBUG"/> <!-- 以下这些也没用 <logger name="com.apache.ibatis" level="DEBUG"/> <logger name="java.sql.Connection" level="DEBUG"/> <logger name="java.sql.Statement" level="DEBUG"/> <logger name="java.sql.PreparedStatement" level="DEBUG"/> --> <!-- 以下这些我试过,没用 <logger name="org.mybatis" level="DEBUG" additivity="false"> <appender-ref ref="debug"/> </logger> <logger name="org.apache.ibatis" level="DEBUG" additivity="false"> <appender-ref ref="debug"/> </logger> <logger name="java.sql" level="DEBUG" additivity="false"> <appender-ref ref="debug"/> </logger> --> <!-- 这个是日志总控制开关,这里面我把“debug“加上去 ,所以上面那个注释的就不要--> <root level="DEBUG"> <appender-ref ref="debug"></appender-ref> <appender-ref ref="STDOUT" /> </root> </configuration>
3、以上就基本完成了
不要忘了jia包
logback-classic-1.1.2.jar
logback-core-1.1.2.jar
logback-ext-spring-0.1.1.jar
还有这个jra包,我没试过,不知道需不需要
slf4j-api-1.7.7.jar
补充,因为某种原因,我也只研究到这里了,这篇文章就是抛砖引玉,有什么不对的,欢迎大家提出来。
相关推荐
springboot+springMVC+tk.mybatis+lombook+yml配置+logback-spring日志配置+ueditor源码修改整合 经测试有效,内附数据库文件及测试账号数据,在项目/doc文件夹中
在这个名为"spring + springmvc + mybatis 框架实例(logback)"的项目中,开发者通过全注解的方式,实现了几乎零配置的应用,同时还引入了Logback作为日志记录工具,增强了应用的日志管理能力。 首先,Spring框架...
SSM框架整合是Java开发中常见的一种Web应用架构,由Spring、SpringMVC和Mybatis三个组件协同工作,提供了一种高效、灵活的后端开发解决方案。本资源旨在为初学者提供一个完整的SSM框架整合实例,帮助理解并掌握这三...
本项目采用了一种常见的技术栈:“Maven+SpringMVC+MyBatis+Logback+WebSocket”,这是一套强大的组合,适合快速开发中大型企业级应用。接下来,我们将详细探讨这些技术及其相互间的协同工作。 1. Maven: Maven是...
在本项目中,我们探索的是一个基于Spring MVC、Maven、MyBatis和Logback的典型Java Web开发架构。这四个技术是现代企业级应用开发中的核心组件,它们各自承担着不同的职责,共同构建了一个高效、灵活且可维护的系统...
【Spring+SpringMVC+MyBatis】是一个常见的企业级Web应用开发框架组合,它将Spring的核心 IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)功能与SpringMVC的Web处理机制...
9. **日志管理**:项目中可能会使用Log4j、SLF4J或Logback等日志框架,便于记录和分析运行时信息,帮助调试和问题定位。 10. **安全框架**:Spring Security或者Shiro可以用来实现用户认证和授权,保护系统的安全性...
在本文中,我们将深入探讨如何使用IntelliJ IDEA(Idea)搭建一个Spring Boot项目,并集成MyBatis和Spring MVC框架。Spring Boot以其简洁、快速的起步方式深受开发者喜爱,而MyBatis作为轻量级的持久层框架,与...
这是一个基于Java技术栈的Web开发项目,主要使用了SpringMVC、Maven、MyBatis和Logback四个核心框架和技术。下面将详细讲解这些技术及其在项目中的作用。 1. **SpringMVC**:SpringMVC是Spring框架的一个模块,主要...
在Java Web开发中,Spring、SpringMVC和MyBatis是三个非常重要的开源框架,它们共同构建了SSM(Spring、SpringMVC、MyBatis)框架集成解决方案。本资源包含了一个基础的SSM框架配置文件集合,对于初学者而言,理解和...
SSM(Spring、SpringMVC、MyBatis)是Java Web开发中常用的一套整合框架,它将Spring的IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)特性,SpringMVC的Web层处理能力,...
9. **日志管理**:通常项目会包含日志记录,如Log4j或Logback,用于追踪和调试问题。 10. **错误和异常处理**:学习如何配置Spring MVC的全局异常处理器,优雅地处理运行时异常。 这个项目是学习和实践Java Web...
在实际开发中,还会涉及到日志管理、异常处理、安全控制等方面,如使用Spring Security进行权限控制,使用Log4j或Logback进行日志记录。总的来说,SSM框架整合提供了一套完整的Web应用解决方案,能够帮助开发者快速...
在IT行业中,Spring、SpringMVC和MyBatis是三个非常重要的开源框架,它们分别用于企业级应用的依赖注入、Web层控制和数据持久层操作。"SSM"(Spring、SpringMVC、MyBatis)是这三者集成的简称,广泛应用于Java后端...
【标题】"管理系统系列--电影后台管理系统,Spring+SpringMVC+Mybatis(SSM).zip" 提供了一个基于Spring、SpringMVC和Mybatis(简称SSM框架)的电影后台管理系统的实现。这个系统可能包括了电影信息管理、用户管理...
该酒店管理系统基于经典的Java EE开发框架Spring、SpringMVC和MyBatis构建,结合MySQL数据库进行数据存储。这个系统的设计和实现涵盖了多个重要的IT知识点,包括但不限于以下几个方面: 1. **Spring框架**:Spring...
Spring、SpringMVC和Mybatis是Java开发中最常用的三大开源框架,它们的组合构建了企业级Web应用的基础架构。这个项目提供了基于这三个框架的基础配置,可以直接运行并进行二次开发,大大提高了开发效率。 Spring...
在这个场景下,"spring+springmvc+mybatis"是一个常用的技术栈,用于搭建这样的系统。接下来,我们将详细讨论这三个技术组件以及它们在构建业务办理系统中的作用。 首先,Spring框架是Java开发中最广泛使用的轻量级...
SSM框架是Java Web开发中常用的三大框架集成,即Spring、SpringMVC和MyBatis。这个项目"Java基于SSM(Spring+SpringMVC+MyBatis)大创项目申报管理系统"是一个典型的企业级应用实例,用于管理大学生创新项目申报。...