Log4j在Java Web开发中的使用笔记

Log4j使用比较简单(虽然我折腾了半天 )。
这篇 文章写的不错,是中文的,还有 这篇E文的,详细的介绍了Web开发中如何使用Log4j。
主要总结一下Web中使用Log4j。

概述:

  1. 要在程序中输出调试信息,就要先获得Logger。要获得Logger,就要先配置它。
  2. 总是可以通过Logger.getRootLogger()来获得根logger,但基本不这么做。(专家说,我也不知道为什么)
  3. 可以简单的写一个Servlet来初始化,并在启动时装载。好像还有一种用LogFactory类来初始化并提供Logger的。

如何配置并初始化:

  1. 有3种配置方式:程序中配置,java配置文件,xml配置文件。通常java配置文件简单方便,我喜欢。
  2. 关于在web应用中初始化,在log4j的官方网站使用手册(英文)webwing翻译的中文版。有一个详细的例子,值得学习。Initialization servlet 部分。
  3. 最简单的配置方式:将配置文件取名log4j.configuration ,放到WEB-INF/classes下,一切OK!不用再使用第2条的方法来初始化了。
  4. java配置文件使用PropertyConfigurator ,xml配置文件使用DOMConfigurator
  5. 还可以使用BasicConfigurator.configure();来使用基本配置,不过多半不这么用。
  6. Logger类是Category类的子类,将逐渐替代Category类,以前的配置例子有不少用Category的,建议都用Logger类吧。
  7. 几个APPENDERS(可以参考示例http://blog.csdn.net/kengking/archive/2004/11/15/LOG4J.aspx
    • Console:org.apache.log4j.ConsoleAppender
    • Files :org.apache.log4j.FileAppender
    • GUI components:……
    • Remote socket servers:……
    • NT Event Loggers:……
    • Remote UNIX Syslog daemons:……
  8. PatternLayout的格式(好像差一个)

    符号

    描述

    %r自程序开始后消耗的毫秒数
    %t表示日志记录请求生成的线程
    %p表示日志语句的优先级别
    %c日志信息所在的类名
    %m%n表示日志信息的内容
    %r自应用启动到输出该log信息耗费的毫秒数
    %d日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
    %l日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

程序中使用Logger

  1. 获得Logger的instance-->输出调试信息,包括:DEBUG,INFO,WARN,ERROR,FATAL一共5级,通常INFO就够了。
  2. 程序中创建Logger可以通过Logger logger = Logger.getLogger(this.getClass().getName()); (如果有LogFactory可以用这个类来生成,例如:private Log log = LogFactory.getFactory().getInstance(this.getClass().getName());)如果JVM中没有这个Logger则创建一个新的Logger。
  3. 在创建Logger时,如果配置文件中存在有这个logger,则按配置来创建,否则继承rootLogger。
  4. 这种代码的效率比较高,在以后不需要调试信息的时候是最高效的。if (logger.isInfoEnabled())   logger.info(this.getClass().getName());

……

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值