JAVA Web之Log4j的使用问题

本来今天想试试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

时间: 2024-08-29 17:46:38

JAVA Web之Log4j的使用问题的相关文章

java web使用log4j无法写入到日志文件

项目环境 1.项目类型:java web 2.web容器:tomcat 3.框架:spring 4.调用代码:spring配置的定时任务,任务执行类用@Component注入(开始还以为是这里出了问题 ̄□ ̄||) 主要现象 1.启动tomcat后,发现日志无法写入 2.删除日志文件再次启动,日志文件没有新建 3.单独在类中执行main方法里的log操作可以写入到文件中 4.启动tomcat后,日志可以输入到控制台,但是不能写入到文件中 log4j.properties ####写入到文件!!没反

java web中使用log4j

测试log4j的项目结构 Log4j.properties的路径为    src/config/log4j Log4j.properties文件的内容 下面定义日志输出级别是 INFO,并且配置了2个输出目的地,一个是A3,一个是console log4j.rootLogger = INFO,A3,CONSOLE //日志最低的输出级别 log4j.appender.A3.Threshold=INFO log4j.appender.A3.encoding=UTF-8 //每天产生一个文件Dail

java web 项目如何加载log4j配置文件

在整个WEB系统中,为了统一的使用日志管理,需要在系统启动的时候就加载Log4j的配置文件,这样才能保证以后使用log4j的格式是一致的,便于跟踪和解决问题. 那么,如何在系统启动的时候加载log4j的配置文件呢?下面我简单的介绍一下: 1.在web.xml文件中添加一个"监听器" Xml代码 <!-- 加载log4j的配置信息 --> <listener> <listener-class>hb.init.log4j.Log4jInit</li

Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这部分内容需要以下Jar包支持 mysql-connector:MySQL数据库连接驱动,架起服务端与数据库沟通的桥梁: MyBatis:一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架: log4j:Apache的开源项目,一个功能强大的日志组件,提供方便的日志记录: 修改后的pom.xm

java web (j2ee)学习路线 —— 将青春交给命运

RESON TO DO JAVA WEB:1.JAVA WEB(企业级)  2.Android和iOS过于火爆并且不兼容 一.JAVA WEB开发需要的知识储备 1.      基本的网页设计语言:HTML.JavaScript.CSS 2.      制作动态网站:Java.JSP(servelt) 3.      数据库:MySQL.SQL Server.SQL Lite.Access.Oracle 4.      流行的框架:MVC思想和原理——了解Struts.Spring.Hibern

JAVA中使用log4j及slf4j进行日志输出的方法

JAVA中输出日志比较常用的是log4j,这里讲下log4j的配置和使用方法,以及slf4j的使用. 一.下载log4j的架包,并导入项目中,如下: 二.创建log4j.properties配置文件 1.log4j配置文件的位置: (1)如果是java project项目,则在项目的根目录下创建log4j.properties而不是在src目录下. (2)如果是java web项目,则在src目录下创建log4j.properties配置文件,因为这个时候tomcat会去默认的加载这个配置文件,

做一个完整的Java Web项目需要掌握的技能

原文链接:http://blog.csdn.net/JasonLiuLJX/article/details/51494048 最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Java Web项目的同学一个比较完整的视角,提供一个所谓的"大局观",也以便于同学们更有针对性地学习.当然,这里所用到的例子项目是非常初级,简单的项目,所以大神们就可以不用往下看

高效 Java Web 开发框架 JessMA v3.5.1 正式发布

JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate.MyBatis 与 JDBC DAO 组件),集成了 Action 拦截.Form / Dao / Spring Bean 装配.国际化.文件上传下载和页面静态化等基础 Web 应用组件,提供高效灵活的纯 Jsp/Servlet API 编程模型,可完美整合 Spring / Guice,支持 Action Conven

tomcat下部署了多个项目启动报错java web error:Choose unique values for the &#39;webAppRootKey&#39; context-param in your web.xml files

应该是tomcat下部署了多个项目且都使用log4j. <!--如果不定义webAppRootKey参数,那么webAppRootKey就是缺省的"webapp.root".但最好设置,以免项目之间的名称冲突. 定义以后,在Web Container启动时将把ROOT的绝对路径写到系统变量里. 然后log4j的配置文件里就可以用${webName.root }来表示Web目录的绝对路径,把log文件存放于webapp中. 此参数用于后面的“Log4jConfigListener”