Log4j1X迁移至Log4j2(基于SLF4j)
来源:互联网 发布:usb端口检测软件 编辑:程序博客网 时间:2024/03/29 20:13
Log4j2相比Log4j1有很大的性能提升,由其是AsyncAppender,因此还是很有升级的必要。
迁移之前要注意以下几点:
- Log4j2不再支持
.properties
配置文件,增加了JSON格式支持 - XML配置文件有较大变动
修改pom.xml
删除老的所有关于日志的依赖,改为:
<!-- logging --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.4</version> </dependency>
修改XML
- 首先要把
log4j.xml
更名为log4j2.xml
。 - 去掉doctype声明
如:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd"><log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'></log4j:configuration>
直接改为:
<?xml version="1.0" encoding="UTF-8"?><Configuration></Configuration>
Appender
和logger
全部放到<Appenders>
和<Loggers>
标签下
From:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd"><log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> </layout> </appender> <category name="org.apache.log4j.xml"> <priority value="info" /> </category> <Root> <priority value ="debug" /> <appender-ref ref="STDOUT" /> </Root></log4j:configuration>
To:
<?xml version="1.0" encoding="UTF-8"?><Configuration> <Appenders> <Console name="STDOUT" target="SYSTEM_OUT"> <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> </Console> </Appenders> <Loggers> <Logger name="org.apache.log4j.xml" level="info"/> <Root level="debug"> <AppenderRef ref="STDOUT"/> </Root> </Loggers></Configuration>
- Log4j2不再通过
class
属性区分appender
的类型,而是直接通过标签名
例如,控制台appender From:
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> </layout> </appender>
To:
<Console name="STDOUT" target="SYSTEM_OUT"> <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> </Console>
看起来简洁了许多,不过还是增加了查文档的时间成本。
XML文件的变动让人很不舒服,但是还是值得折腾一下的。完成以上工作后Log4j2应该就能正常工作了。更详细的配置说明可以参考http://logging.apache.org/log4j/2.x/manual/migration.html
0 0
- Log4j1X迁移至Log4j2(基于SLF4j)
- log4j+slf4j迁移到log4j2+slf4j (Servlet3.0)
- slf4j+log4j2 maven
- log4j2+slf4j使用案例
- Log4j2+Slf4j快速入门
- 日志学习:SLF4J & Log4J2
- Log4j2+Slf4j快速入门
- 日志---slf4j和log4j2
- slf4j +log4j2 日志 配置
- log4j2配合slf4j使用
- 使用slf4j + Log4j2构建日志
- spring4 + log4j2+ slf4j的配置
- slf4j+log4j2的整合配置
- logback->log4j2迁移
- (开发笔记)转载:slf4j+log4j2 maven
- Log4j,Log4j2,logback,slf4j日志学习
- log4j与log4j2的配合使用、slf4j
- SpringMVC使用maven配置SLF4J和Log4J2
- Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/core"
- C#学习之多线程开发技术(十一)
- MYISAM表批量压缩
- Activity之间返回结果
- php date 处理
- Log4j1X迁移至Log4j2(基于SLF4j)
- 关系演算
- iOS编程------动画
- 软件测试行业浅析
- 装饰模式
- 1023. 组个最小数 (20)
- POJ 2533 Longest Ordered Subsequence (LIS)
- 程序题
- @ModelAttribute运用详解