当程序有错误时,我们就需要找出错误的地方并进行验证,怎样才能准确快速的找到出错的地方呢,那就是在程序运行时在控制台上输出相关的信息,从而可以判断程序的运行顺序以及出错的位置。以前总是习惯使用System.out.println();进行信息输出,现在老师介绍了另一种输出日志的方法,那就是log4j。

下面对log4j进行简单介绍:Log4j中有三个主要的组件,它们分别是 Logger、Appender和Layout。1.Appender则是用来指明将所有的log信息存放到什么地方,Log4j中支持多种appender,如 console、files、GUI components、NT Event Loggers等,一个Logger可以拥有多个Appender,也就是你既可以将Log信息输出到屏幕,同时存储到一个文件中。2.Layout的作用是控制Log信息的输出方式,也就是格式化输出的信息。3.Log4j中将要输出的Log信息定义了5种级别,依次是FATAL、ERROR、WARN、INFO、DEBUG,当输出时,只有级别高过配置文件中规定的级别信息才能真正的输出。Log4j支持两 种格式的配置文件:XML格式和Java的property格式。

看一个demo:新建一个Log4jDemo的javaWeb工程,建一个Demo1.java

代码如下:

package com.dr.demo1; 

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; public class Demo1 extends HttpServlet{
private static Logger log = Logger.getLogger(Demo1.class);
public void doGet(HttpServletRequest request,HttpServletResponse response){
log.info("welcome to log4j demo!");
} }

在web.xml中进行配置,代码如下:

<servlet>
<servlet-name>demo</servlet-name>
<servlet-class>com.dr.demo1.Demo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo</servlet-name>
<url-pattern>/demo</url-pattern>
</servlet-mapping>

导入log4j.jar和log4j.propertie配置文件,配置文件代码如下:

#级别由高到低依次是:fatal、error、warn、info、debug
log4j.rootLogger=INFO,R,stdout
#debug 无法打印
#log4j.rootLogger=ERROR,R,stdout
#debug/infor/warn 无法打印
#log4j.rootLogger=DEBUG,R,stdout
#都可以打印
#log4j.rootLogger=warn,R,stdout
#info/debug无法打印
#log4j.rootLogger=fatal,R,stdout
#都不可以打印                
#log4j.logger.com.cmcc=DEBUG

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
#   日志信息存放的文件位置
log4j.appender.R.File = ${catalina.home}/logs/fetionwapim.log 
log4j.appender.R.DatePattern = yyyy-MM-dd'.log'
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

#   %r           自程序开始后消耗的毫秒数
#   %t           表示日志记录请求生成的线程
#   %p           表示日专语句的优先级
#   %r           与日志请求相关的类别名称
#   %c           日志信息所在的类名
#   %m%n         表示日志信息的内容

有关代码的说明已经在配置文件中说了,在此就不再多做说明。

在浏览器中输入访问地址,在控制台上就会打印出信息:

2011-01-18 14:52:39,531 [http-8080-1] [com.dr.demo1.Demo1] [INFO] - welcome to log4j demo!

就到这吧,有不对的地方希望各位大虾不吝赐教!

最新文章

  1. Azure Web Site 之 利用Azure Web site 发布网站
  2. JS中innerHTML,innerText,value
  3. WIN7 共享网络方法
  4. 记一次使用openrowset 的坑
  5. linux动态网络和静态网络和克隆后的网络配置
  6. CentOS 6.5上MySQL安装部署与入门。
  7. mysql查询在一张表不在另外一张表的记录
  8. Android自定义dialogdemo
  9. VNC常用操作及常见问题解决办法汇总
  10. Apache Conf/Vost/xx.conf 文件配置
  11. Hibernate入门(2)- 不用配置用注解
  12. C# 利用范型与扩展方法重构代码
  13. Robot Framework安装配置 windows
  14. URAL - 1966 - Cycling Roads(并检查集合 + 判刑线相交)
  15. 借助扩展事件查看SQL 2016备份和还原操作的内幕
  16. 漫漫人生路,学点Jakarta基础-重写(覆盖)、重载
  17. 20.1章JSON语法
  18. 【Noip2017游记】
  19. oracle查询相关语句
  20. multiset基础学习,可以有重复类型的多重集合容器

热门文章

  1. git学习笔记01-git最基本的工作原理分布式
  2. php 判断 xml 里是否存在某个节点
  3. ERROR 1044 (42000): Access denied for user &#39;&#39;@&#39;localhost&#39; to database &#39;db&#39;
  4. [转载] 理解 rto
  5. 【转】Github 上传代码
  6. java实现excel与mysql的导入导出
  7. javaMail编写案列
  8. poj2451Uyuw&#39;s Concert(半平面交)
  9. Mysql delete,truncate,drop
  10. apt-get的常用用法