log4j从1到2有不少的变化和增强。所以考虑将项目中的log4j1更换成log4j2,同时仍然使用slf4j的适配,更换过程如下。
1、maven的改变,移除log4j1的依赖,添加log4j2的依赖,替换完成后,maven的最终文件为
maven配置 写道
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.9.1</version>
</dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.9.1</version>
</dependency>
<!-- 异步日志依赖 -->
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.3.7</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>2.9.1</version>
</dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.3.7</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>2.9.1</version>
</dependency>
<!-- 继续保持使用slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.25</version>
</dependency>
同时请使用jdk7及以上。
2、如果使用servlet3以上,请去除web.xml中关于Log4j的配置项。log4j2可自动识别配置文件。同时在web的根目录下,加入一个log4j2.xml的配置文件。
log4j2简单配置文件 写道
<?xml version="1.0" encoding="UTF-8"?>
<!-- 根据monitorInterval会自动检测该配置文件并更新日志配置 -->
<Configuration status="off" monitorInterval="1800">
<!-- 属性文件配置,后续可以使用${}格式调用 -->
<properties>
<property name="LOG_HOME">/usr/scm/logs/</property>
<property name="ERROR_LOG_FILE_NAME">scm</property>
</properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p (%F:%L) - %m%n" />
</Console>
<RollingRandomAccessFile name="ErrorLog"
fileName="${LOG_HOME}/${ERROR_LOG_FILE_NAME}.log"
filePattern="${LOG_HOME}/${ERROR_LOG_FILE_NAME}.log.%d{yyyy-MM-dd}.gz">
<PatternLayout
pattern="%d %-5p (%F:%L) - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100MB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<!-- 3rdparty Loggers -->
<logger name="org.springframework" level="warn"></logger>
<!-- 打印SQL仅需指定dao所在bao的debug级别,其他配置已不需要,但不支持通配符 -->
<logger name="com.scm" level="info" includeLocation="true" additivity="false">
<appender-ref ref="ErrorLog"/>
<appender-ref ref="Console"/>
</logger>
<root level="info" includeLocation="true">
<appender-ref ref="Console"/>
</root>
</Loggers>
</Configuration>
<!-- 根据monitorInterval会自动检测该配置文件并更新日志配置 -->
<Configuration status="off" monitorInterval="1800">
<!-- 属性文件配置,后续可以使用${}格式调用 -->
<properties>
<property name="LOG_HOME">/usr/scm/logs/</property>
<property name="ERROR_LOG_FILE_NAME">scm</property>
</properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p (%F:%L) - %m%n" />
</Console>
<RollingRandomAccessFile name="ErrorLog"
fileName="${LOG_HOME}/${ERROR_LOG_FILE_NAME}.log"
filePattern="${LOG_HOME}/${ERROR_LOG_FILE_NAME}.log.%d{yyyy-MM-dd}.gz">
<PatternLayout
pattern="%d %-5p (%F:%L) - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100MB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<!-- 3rdparty Loggers -->
<logger name="org.springframework" level="warn"></logger>
<!-- 打印SQL仅需指定dao所在bao的debug级别,其他配置已不需要,但不支持通配符 -->
<logger name="com.scm" level="info" includeLocation="true" additivity="false">
<appender-ref ref="ErrorLog"/>
<appender-ref ref="Console"/>
</logger>
<root level="info" includeLocation="true">
<appender-ref ref="Console"/>
</root>
</Loggers>
</Configuration>
3、打印mybatis的sql,如上图所示,仅仅需要指定dao所在的文件夹即可。在Mybatis的配置文件中可以继续使用slfj4impl。
<setting name="logImpl" value="SLF4J"/> 无需改成log4j2的实现。
4、如果需要更加深刻的了解log4j2的事件级别和配置级别,以及更复杂的配置,可参考log4j2的官方文档。
相关推荐
slf4j-log4j12-1.7.25.jar 2.Spring所需要的jar包: spring-bean.5.0.2.jar spring-context-5.0.2.jar spring-core-5.0.2.jar spring-expression-5.0.2.jar commons-logging-1.2.jar aopalliance-1.0.jar ...
包含spring整合mybatis所需的所有jar包资源,包括log4j-api-2.3,slf4j-api-1.7.25等资源
本项目不但包括三大框架整合 还有log4j+slf的组合方法~!附带数据库~~在次分享
/13spring4_mybatis2/lib/slf4j-log4j12-1.7.5.jar /13spring4_mybatis2/lib/spring-aop-4.1.6.RELEASE.jar /13spring4_mybatis2/lib/spring-aspects-4.1.6.RELEASE.jar /13spring4_mybatis2/lib/spring-beans-...
日志管理:SLF4J 1.7 + Log4j2 2.7 工具类:Apache Commons、Jackson 2.2、fastjson 1.2.20 前端技术 JS框架:Jquery 表格插件:Bootstrap Table 表单验证插件:BootstrapValidator 日期选择插件:Datepicker for ...
jupiter-api-5.3.1.jar log4j-1.2.17.jar log4j-api-2.11.0.jar log4j-core-2.11.0.jar log4j-core-2.11.0.jar mybatis-spring-1.3.2.jar mysql-connector-java-8.0.12.jar slf4j-api-1.7.5.jar slf4j-log4j12-1.7.5...
日志管理:SLF4J 1.7 + Log4j2 2.7 工具类:Apache Commons、Jackson 2.2、fastjson 1.2.20 前端技术 JS框架:Jquery 表格插件:Bootstrap Table 表单验证插件:BootstrapValidator 日期选择插件:Datepicker for ...
spring springmvc mybatis的整合jar包,以及mysql,Junit,fastJson等的jar包,导入这些jar包 搭一个SSM的环境,可以使用SSM框架做一个简单的能够实现增删改查的小项目,具体的jar包及其版本如下 : aopalliance-1.0....
日志管理:SLF4J 1.7 + Log4j2 2.7 布局框架:SiteMesh 3.0.1 分布式应用程序协调服务:ZooKeeper 3.3.1 分布式服务框架:Dubbo 2.5.3 接口测试框架:Swagger2 2.6.1 工具类:Apache Commons、Jackson 2.2、fastjson...
3.2.7.jar,mybatis-spring-1.2.2.jar,mysql-connector-java-5.1.7-bin.jar,slf4j-api-1.7.5.jar,slf4j-log4j12-1.7.5.jar,spring-aop-3.2.0.RELEASE.jar,spring-aspects-3.2.0.RELEASE.jar,spring-beans-...
3.2.7/mybatis-spring-1.2.2/mysql-connector-java-5.1.7-bin/slf4j-api-1.7.5/slf4j-log4j12-1.7.5/spring-aop-4.1.3.RELEASE/spring-aspects-4.1.3.RELEASE/spring-beans-4.1.3.RELEASE/spring-context-4.1.3....
这是一个SpringMVC+Mybatis 脚手架,方便平时的开发使用,也可作为新手的学习项目。 依赖 Spring :4.2.1.RELEASE ...slf4j:1.7.12 log4j:1.2.17 数据库默认使用了mysql,依赖 mysql-connection-java:5.1.6
mybatis相关的所有jar包,包括log4j,slg4j,mysql相关jar,mybatis整合spring的jar
slf4j-log4j12-1.7.5.jar spring-aop-3.2.0.RELEASE.jar spring-aspects-3.2.0.RELEASE.jar spring-beans-3.2.0.RELEASE.jar spring-context-3.2.0.RELEASE.jar spring-context-support-3.2.0.RELEASE.jar spring-...
SingleMyBatis 是基于Spring Framework基础上搭建的一个Java基础开发套件,以Spring MVC为模型视图控制器,MyBatis为数据访问层。...* 日志管理:SLF4J 1.7.25、Log4j2.8.2 * 工具类:fasterxml 2.8.7、junit 4.12、
日志管理:SLF4J 1.7 + Log4j2 2.7 布局框架:SiteMesh 3.0.1 分布式应用程序协调服务:ZooKeeper 3.3.1 分布式服务框架:Dubbo 2.5.3 接口测试框架:Swagger2 2.6.1 工具类:Apache Commons、Jackson 2.2、fastjson...
Example涵盖内容: 4种日志框架详解:Logback、Log4j、Log4j2和Slf4j,基于secure-ext-spring-boot-starter日志记录脱敏,spring-session基于redis存储session,集成MyBatis以及mybatis-plus3的应用实践,安全认证-...
使用slf4j+log4j做日志记录 使用druid做连接池及监控 采用mysql作为数据库 使用kaptcha并二次开发作为验证码 使用maven作为jar管理 使用redis作为缓存 使用poi导出excel 项目亮点: 严格的权限控制,当然你也可以自己...
slf4j-log4j12-1.5.8.jar log4j-1.2.14.jar jstl-1.2.jar mybatis-3.4.1.jar mybatis-spring-1.3.0.jar mysql-connector-java-5.1.20.jar spring-jdbc-4.3.2.RELEASE.jar spring-tx-4.3.2.RELEASE.jar commons-dbcp-...