log4jrefreshinterval log4j是什么意思思

相信很多程序猿朋友对log4j都很熟悉,log4j可以说是陪伴了绝大多数的朋友开启的编程。我不知道log4j之前是用什么,至少在我的生涯中,是log4j带我开启的日志时代。log4j是Apache的一个开源项目,我们不去考究它的起源时间,但是据我了解,log4j 1已经不再更新了。下面引用官网的原文:End of LifeOn August 5, 2015 the Logging Services Project Management Committee announced that Log4j 1.x had reached end of life. For complete text of the announcement please see the&Apache Blog. Users of Log4j 1 are recommended to upgrade to Apache Log4j 2.是的,log4j停止于1.x版本,迎来了log4j 2,也就是我们今天要说的log4j 2.回顾log4j,曾给我们留下了多少的回忆,我记得早些年,那时候mybatis还是叫ibatis的时候,我为了配置ibatis控制台打印日志,纠结了多少个夜晚,最后配置出来时的那种喜悦感。废话不多说,下面我就以列举的方式来浅谈log4j和log4j 2的不同之处。1.配置文件类型log4j是通过一个*.properties的文件作为主配置文件的,而现在的log4j 2则已经弃用了这种方式,采用的是*.xml,*.json或者*.jsn这种方式来做,可能这也是技术发展的一个必然性,毕竟properties文件的可阅读性真的是有点差。2.核心JAR包log4j只需要引入一个jar包即可,&dependency&&&&&&groupId&log4j&/groupId&&&&&&artifactId&log4j&/artifactId&&&&&&version&1.2.17&/version&&/dependency&而log4j 2则是需要2个核心jar,&dependency&&&&&&groupId&org.apache.logging.log4j&/groupId&&&&&&artifactId&log4j-core&/artifactId&&&&&&version&2.5&/version&&/dependency&&dependency&&&&&&groupId&org.apache.logging.log4j&/groupId&&&&&&artifactId&log4j-api&/artifactId&&&&&&version&2.5&/version&&/dependency&同时大家发现没,log4j和log4j 2的包路径是不同的,Apache为了区分,包路径都更新了,这样大家甚至可以在一个项目中使用2个版本的日志输出哦!(不过我想你们没有那么调皮吧,嘿嘿)3.文件渲染log4j想要生效,我们需要在web.xml中进行配置, &listener&
&listener-class&org.springframework.web.util.Log4jConfigListener&/listener-class&
&/listener& &context-param&
&param-name&log4jConfigLocation&/param-name&
&param-value&classpath:config/log4j.properties&/param-value&
&/context-param&
&context-param&
&param-name&log4jRefreshInterval&/param-name&
&param-value&60000&/param-value&
&/context-param&这段配置目的在于告诉工程去哪加载log4j的配置文件和定义一个扫描器,这样可以随心所欲的放置log4j配置文件。log4j2就比较简单,以maven工程为例,我们只需要把log4j2.xml放到工程resource目录下就行了。大家记住一个细节点,是log4j2.xml,而不是log4j.xml,xml名字少个2都不行!!喜欢做学问的小伙伴,有兴趣可以去研究下,照我估计应该是在log4j2的包里面配置死了,而且大家可以尝试下怎么自定义log4j2.xml的位置。4.Log调用log4j和log4j2调用都是很简单的。log4j:import&org.apache.log4j.Lprivate final Logger LOGGER = Logger.getLogger(Test.class.getName());log4j2:import org.apache.logging.log4j.Limport org.apache.logging.log4j.LogMimport org.apache.logging.log4j.Lprivate static Logger logger = LogManager.getLogger(Test.class.getName());5.配置文件方式最关键的最大的不同,那就是配置文件的区别了,不过这里我就不赘述了,大家具体使用的时候再根据你的情况进行配置就行了。总结:技术总是在不断进步的,我们不能局限在已知的知识领域中,要不断去创新,去尝试!谭老板Java须弥之境(tanjava)
 文章为作者独立观点,不代表大不六文章网立场
tanjava谭老板须弥之境,主要提供java技术知识,程序员心情,程序员生活及一些趣闻等内容,后续开启须弥之境将给您带来更多惊喜。热门文章最新文章tanjava谭老板须弥之境,主要提供java技术知识,程序员心情,程序员生活及一些趣闻等内容,后续开启须弥之境将给您带来更多惊喜。&&&&违法和不良信息举报电话:183-
举报邮箱:Copyright(C)2017 大不六文章网log4j注意的问题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
log4j注意的问题
上传于|0|0|暂无简介
你可能喜欢1621人阅读
Java Common(9)
相信很多程序猿朋友对log4j都很熟悉,log4j可以说是陪伴了绝大多数的朋友开启的编程。我不知道log4j之前是用什么,至少在我的生涯中,是log4j带我开启的日志时代。
log4j是Apache的一个开源项目,我们不去考究它的起源时间,但是据我了解,log4j 1已经不再更新了。
下面引用官网的原文:
End of Life On August 5, 2015 the Logging Services Project Management
Committee announced that Log4j 1.x had reached end of life. For
complete text of the announcement please see the Apache Blog. Users of
Log4j 1 are recommended to upgrade to Apache Log4j 2.
是的,log4j停止于1.x版本,迎来了log4j 2,也就是我们今天要说的log4j 2.
回顾log4j,曾给我们留下了多少的回忆,我记得早些年,那时候mybatis还是叫ibatis的时候,我为了配置ibatis控制台打印日志,纠结了多少个夜晚,最后配置出来时的那种喜悦感。废话不多说,下面我就以列举的方式来浅谈log4j和log4j 2的不同之处。
1.配置文件类型
log4j是通过一个.properties的文件作为主配置文件的,而现在的log4j 2则已经弃用了这种方式,采用的是.xml,.json或者.jsn这种方式来做,可能这也是技术发展的一个必然性,毕竟properties文件的可阅读性真的是有点差。
2.核心JAR包
log4j只需要引入一个jar包即可,
而log4j 2则是需要2个核心
&org.apache.logging.log4j&
&log4j-core&
&org.apache.logging.log4j&
&log4j-api&
大家发现没,log4j和log4j 2的包路径是不同的,Apache为了区分,包路径都更新了,这样大家甚至可以在一个项目中使用2个版本的日志输出哦!(不过我想你们没有那么调皮吧,嘿嘿)
3.文件渲染
log4j想要生效,我们需要在web.xml中进行配置,
&org.springframework.web.util.Log4jConfigListener&
&log4jConfigLocation&
&classpath:config/log4j.properties&
&log4jRefreshInterval&
这段配置目的在于告诉工程去哪加载log4j的配置文件和定义一个扫描器,这样可以随心所欲的放置log4j配置文件。
log4j2就比较简单,以maven工程为例,我们只需要把log4j2.xml放到工程resource目录下就行了。大家记住一个细节点,是log4j2.xml,而不是log4j.xml,xml名字少个2都不行!!
喜欢做学问的小伙伴,有兴趣可以去研究下,照我估计应该是在log4j2的包里面配置死了,而且大家可以尝试下怎么自定义log4j2.xml的位置。
log4j和log4j2调用都是很简单的。
import org.apache.log4j.Logger
private final Logger LOGGER = Logger.getLogger(Test.class.getName())
import org.apache.logging.log4j.Level
import org.apache.logging.log4j.LogManager
import org.apache.logging.log4j.Logger
private static Logger logger = LogManager.getLogger(Test.class.getName())
5.配置文件方式
最关键的最大的不同,那就是配置文件的区别了,大家具体使用的时候再根据你的情况进行配置就行了。
log4j2 例子如下:
&?xml version="1.0" encoding="UTF-8"?&
status="error"&
name="Console" target="SYSTEM_OUT"&
level="trace" onMatch="ACCEPT" onMismatch="DENY"/&
pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/&
name="log" fileName="log/test.log" append="false"&
pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/&
name="ERROR" fileName="logs/error.log"&
level="error" onMatch="ACCEPT" onMismatch="DENY"/&
pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/&
name="RollingFile" fileName="logs/web.log"
filePattern="logs/$${date:yyyy-MM}/web-%d{MM-dd-yyyy}-%i.log.gz"&
pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/&
size="2MB"/&
level="trace"&
ref="RollingFile"/&
ref="Console"/&
ref="ERROR" /&
ref="log"/&
技术总是在不断进步的,我们不能局限在已知的知识领域中,要不断去创新,去尝试!
日志的级别:    
我们现在要调用logger的方法,不过在这个Logger对象中,有很多方法,所以要先了解log4j的日志级别,log4j规定了默认的几个级别:trace&debug&info&warn&error&fatal等。这里要说明一下:    
级别之间是包含的关系,意思是如果你设置日志级别是trace,则大于等于这个级别的日志都会输出。
基本上默认的级别没多大区别,就是一个默认的设定。你可以通过它的API自己定义级别。你也可以随意调用这些方法,不过你要在配置文件里面好好处理了,否则就起不到日志的作用了,而且也不易读,相当于一个规范,你要完全定义一套也可以,不用没多大必要。从我们实验的结果可以看出,log4j默认的优先级为ERROR或者WARN(实际上是ERROR)    
这不同的级别的含义大家都很容易理解,这里就简单介绍一下:
是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出。
debug: 调试么,我一般就只用这个作为最低级别,trace压根不用。是在没办法就用eclipse或者idea的debug功能就好了么。
info: 输出一下你感兴趣的或者重要的信息,这个用的最多了。
warn: 有些信息不是错误信息,但是也要给程序员的一些提示,类似于eclipse中代码的验证不是有error
和warn(不算错误但是也请注意,比如以下depressed的方法)。
error: 错误信息。用的也比较多。
fatal: 级别比较高了。重大错误,这种级别你可以直接停止程序了,是不应该出现的错误么!不用那么紧张,其实就是一个程度的问题。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:33338次
排名:千里之外
原创:42篇
评论:24条
(1)(1)(10)(21)(6)(3)(1)(1)(9)}

我要回帖

更多关于 log4j是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信