- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Log4j无法输出日志和应用
Log4j无法输出日志级应用
作者
日期
宋怀胜
2009-3-2
创建
奇怪的问题
这两天遇到一个很奇怪的问题,使用log4j的web应用突然就不能向文件和控制台输出日志了。想想又没有改什么与日志有关的东东。问题一直困扰着我,用log4j不能输出日志了,难到我还得用system.out.println来输日志吗?
?仔细想想,这两天有更新过几个JAR包,初步觉得是因为JAR包引起的。有了点头绪,就开始检查JAR包,用工具打开几个添加的JAR包,在jxls-core-0.9.5.jar包中发现了一个log4j.xml,这个不就是log4j的配置文件吗?看来问题的根源应当就是在这里了,打开这个文件,里面有这么一段:rootlevel value=WARN/appender-ref ref=CONSOLE//root,哈哈,问题找到了,原来这个包里的配置了log4j日志只在控制台输出,而且级别是warn,而我们程序里的级别是info,级别比warn低,日志当然就不会输出来。为了验证我的判断,我在WEB应用的代码中使用log.warn()来输出日志,后台和日志文件里果然出现了测试输出的日志。一下子找到了困扰几天的问题,心里自然很痛快。通过这个分析和在网上查了下资料,log4j优先使用log4j.xml文件,尽管程序里有log4j.properties配置文件,但是因为有log4j.xml文件的存在,log4j就先加载了它,而不需管log4j.properties,所以使得程序里的配置没用了。找到了问题的原因,就要开始解决它了,有三个方法,一:修改log4j中的类,指定它读配置文件的路径,这个方法比较麻烦,不用他。二:修改jxls-core-0.9.5.jar中的XML配置文件,这个方法虽然可以但是每次我们要改应用的日志配置我们还得去解开JAR包。三:删除掉jxls-core-0.9.5.jar中的log4j.xml这样做也是可行的,删掉之后应用并没有受到什么影响。而且我们以后还是能用WEB应用中的配置文件来配置log4j很方便。
Log4j应用
Log4j是一个日志开源组件,目前使用很广泛。日志输出的格式,输出方式等可以能过配置文件进行配置。
要使用log4j我们先从网上下载得到log4j的工具包。里面一般有log4j.jar和一个配置文件,配置文件有两种类型的文件,XML和properties。比较常用的是properties,这里我们就只针对properties作介绍。
有了上述工具包后,我们首先要做的是,把log4j添加到我们的工程里来,添加很简单,把jar包拷到lib目录中,并且把properties文件放到java文件根目录。这样log4j就添加到了我们的工程了。
接下来我们要了解的就是如何来配置它。
打开log4j. properties文件,log4j.rootLogger是配置log4j输出日志的级别和输出日志到什么地方去。例如:log4j.rootLogger=INFO,R, A。其中R和A只是两个输出日志地方的名字。org.apache.log4j.RollingFileAppender表示日志输出到文件,如上面我们的配置,log4j.appender.R=org.apache.log4j.RollingFileAppender这样,就表示,日志输出到文件,并且输出级别为info级的日志。org.apache.log4j.ConsoleAppender 表示日志输出到控制台,log4j.appender.A=org.apache.log4j.ConsoleAppender配置表示,日志输出到控制台。
Log4j主要有四个级别从高到低依次是:FATAL,WARN,ERROR,INFO。根据我们的配置会输出不同级别的日志。当前配置级别和以上级别的日志都会被输出。
log4j.appender.A.layout.ConversionPattern可以控制输出日志的格式,其中A为你所配置输出日志地方的名字。%d表示输出日期和时间,
%p以优先级输出。%m输出日志中代码指定的消息。%c输出所在类的全名。%n表示换行。
以上我们就介绍了log4j的基本应用。现在我们只要在我们的代码中加入
Logger log = Logger.getLogger(QueryPayMoneyDAO.class.getName());
声明一个log4j实例,然后我们就可以在我们的代码中添加输出日志的代码了。我们一般用到log.ifno()和log.error()来输出日志。就我们所做的项目而言,建义在一般的日志输出是用info(),而在一些业务异常时用error()来输出日志。如果我们是在调试代码还可以用log.debug()来输出日志,不
您可能关注的文档
- have__got_和_has__got用法.ppt
- HIV初筛阳性与HIV确诊.ppt
- have一般疑问句 小学三年级英语.ppt
- Have got与There be句型.ppt
- However&Whatever用法.ppt
- HMM和自动规则提取相结合中文命名实体识别.pdf
- However与Whether用法.doc
- HP阴性MALT治疗.pdf
- HMM基本原理和在语音识别中应用.ppt
- has是have第三人称单数形式.doc
- 初中英语人教版七年级上册第四单元Where is my schoolbag ! Section A .ppt
- 初中英语人教版七年级上册第四单元Where is my schoolbag Section B 2.ppt
- 初中英语人教版七年级下册 Unit 6 I'm watching TV. Section A 11a.pptx
- 注册土木工程师培训课件.ppt
- 初中生物济南版七年级上册第一章奇妙的生命现象 第三节生物学的探究方法.ppt
- 初中英语人教版七年级上册第四单元Where is my schoolbag Section B 2.pptx
- 注册安全工程师案例课件.ppt
- 初中物理人教版八年级上册第二章第4节噪声的危害和控制课件(共19张PPT).pptx
- 注册安全工程师王阳课件.ppt
- 初中数学青岛版八年级上2.4《线段的垂直平分线》课件(16张PPT).ppt
原创力文档


文档评论(0)