老生常谈Log4j和Log4j2的区别(推荐)
相信很多程序猿朋友对log4j都很熟悉,log4j可以说是陪伴了绝大多数的朋友开启的编程。我不知道log4j之前是用什么,至少在我的生涯中,是log4j带我开启的日志时代。
log4j是Apache的一个开源项目,我们不去考究它的起源时间,但是据我了解,log4j1已经不再更新了。
回顾log4j,曾给我们留下了多少的回忆,我记得早些年,那时候mybatis还是叫ibatis的时候,我为了配置ibatis控制台打印日志,纠结了多少个夜晚,最后配置出来时的那种喜悦感。废话不多说,下面我就以列举的方式来浅谈log4j和log4j2的不同之处。
1、配置文件类型
log4j是通过一个.properties的文件作为主配置文件的,而现在的log4j2则已经弃用了这种方式,采用的是.xml,.json或者.jsn这种方式来做,可能这也是技术发展的一个必然性,毕竟properties文件的可阅读性真的是有点差。
2、核心JAR包
log4j只需要引入一个jar包即可,
log4j log4j 1.2.17
•1
•2
•3
•4
•5
•1
•2
•3
•4
•5
而log4j2则是需要2个核心
org.apache.logging.log4j log4j-core 2.5 org.apache.logging.log4j log4j-api 2.5
•1
•2
•3
•4
•5
•6
•7
•8
•9
•10
•1
•2
•3
•4
•5
•6
•7
•8
•9
•10
大家发现没,log4j和log4j2的包路径是不同的,Apache为了区分,包路径都更新了,这样大家甚至可以在一个项目中使用2个版本的日志输出哦!(不过我想你们没有那么调皮吧,嘿嘿)
3、文件渲染
log4j想要生效,我们需要在web.xml中进行配置,
org.springframework.web.util.Log4jConfigListener log4jConfigLocation classpath:config/log4j.properties log4jRefreshInterval 60000
•1
•2
•3
•4
•5
•6
•7
•8
•9
•10
•1
•2
•3
•4
•5
•6
•7
•8
•9
•10
这段配置目的在于告诉工程去哪加载log4j的配置文件和定义一个扫描器,这样可以随心所欲的放置log4j配置文件。
log4j2就比较简单,以maven工程为例,我们只需要把log4j2.xml放到工程resource目录下就行了。大家记住一个细节点,是log4j2.xml,而不是log4j.xml,xml名字少个2都不行!!
•喜欢做学问的小伙伴,有兴趣可以去研究下,照我估计应该是在log4j2的包里面配置死了,而且大家可以尝试下怎么自定义log4j2.xml的位置。
4、Log调用
log4j和log4j2调用都是很简单的。
log4j:
importorg.apache.log4j.Logger; privatefinalLoggerLOGGER=Logger.getLogger(Test.class.getName());
•1
•2
•1
•2
log4j2:
importorg.apache.logging.log4j.Level; importorg.apache.logging.log4j.LogManager; importorg.apache.logging.log4j.Logger; privatestaticLoggerlogger=LogManager.getLogger(Test.class.getName());
•1
•2
•3
•4
•1
•2
•3
•4
5、配置文件方式
最关键的最大的不同,那就是配置文件的区别了,大家具体使用的时候再根据你的情况进行配置就行了。
log4j2例子如下:
以上这篇老生常谈Log4j和Log4j2的区别(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。