本来今天想试试Log4j的,所以刚切入的时候就先百度了下有关Log4j的内容,以及基本的配置方法。
一开始我虽然是新建的java web的项目,但我在项目中仍然新建的是类,所以像网上如:http://www.codeceo.com/article/log4j-usage.html 一样创建一个Test类来进行测试应该是没有问题的,可是并不是这样,我遇到了一个非常奇葩的问题。<1>在部署运行的过程中出现了500的错误,错误原因是can‘t find main class(找不到主类)。当时遇到这个问题我就立刻百度了,我找到的第一条回答是:
请确认JAVA编译器和JRE版本一致
右键点击项目--->>>preference-->>>JAVA compiler 查看编译器版本
右键点击项目--->>>build path--->>>Configure build path--->>>Libraries-->>JRE system library 查看JRE版本
如果不一致,修改成一样即可
我确实按照他的方法做了,然而并没什么卵用。(后来我才搞明白了,解决方式见下文)
我觉得可能方向搞错了,既然我新建了javaweb的项目,那就老老实实的使用web方式来完成。或许那样本来就是错误的呢!于是又开始找有关这些的文章。虽然百度开始找到的很多的博客都是写在java项目下的日志文件。但后来又仔细找了找果然还是发现了一些相关的内容。链接:http://www.blogjava.net/zzzlyr/articles/353039.html 。这篇博客中的Log4j虽然是基于servlet来使用的,并没有介绍其他的框架,例如Strust2、Hibernate等中的使用,但其实是可以举一反三的。
一开始我就很直接地按照文章中的方式来一步步进行配置和部署,不过还是出现了一些问题。<2>问题是:Unsupported major.minor version 51.0 (unable to load class org.apache.log4j.Logger) 。这个问题明显是说Logger类无法加载,但我不明白为什么无法加载,当然应该可以想到版本不匹配,因为这是最常见的问题。于是百度,百度告诉我:开发项目是使用的jdk版本和项目运行服务器jdk版本不同就会出现上面的问题。一下子我就慌了,这不跟之前的毛病一样的么!但我也看到了希望,大体上能够确定是版本的问题,但究竟是哪里的版本问题还是不确定。于是百度!让我找到了另一个解释:是jar包版本和jdk版本冲突造成的,我在官网下载的jar版本是2.5的,对应应该使用jdk1.7,而我用的是jdk1.6。于是又去官网重新下了1.2版本的,果然OK!
然而我爱作的心不死,又回去搞了个java的项目用1.2版本的jar包试了试,也可以了!所以这两个问题的症结都在于jar包和jdk版本的不匹配。
但其实有经验的人一看问题二中的51.0就应该明白是哪里出问题了。下面我搞来一张图,一目了然!
可以看出51对应了jdk1.7!
最后,Log4j最新版下载地址:http://logging.apache.org/log4j/2.x/download.html
Log4j 1.2版下载地址:http://logging.apache.org/log4j/1.2/download.html