ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Log4j简介

Log4j简介

原创 Linux操作系统 作者:spritesong 时间:2009-03-30 23:44:01 0 删除 编辑
log4j三大组建
  Log4j有三个主要的组件:日志类别(Loggers)、输出源( Appenders)和布局(Layouts)。这三种类型的组件一起工作使得开发员可以根据信息的类型和级别记录它们,并且在运行时控制这些信息的输出格式和位置。
  一个logger可以有多个appender,意味着日志信息可以同时输出到多个设备上。每个appender都对应一种layout


根(root) 类别位于logger继承结构的最上层。它有两种例外:
1.它一直存在
2.它不能根据名称而获得。
调用类的静态方法Logger.getRootLogger可以得到它。
其它所有的Logger可以通过静态方法Logger.getLogger而得到它们自己的实例。这个方法取希望的Logger名作为参数。
 
 package org.apache.Log4j;
    public Logger class {
      // Creation & retrieval methods:
    public static Logger getRootLogger();
    public static Logger getLogger(String name);
    // printing methods:
    public void debug(Object message);
    public void info(Object message);
    public void warn(Object message);
    public void error(Object message);
   // generic printing method:
    public void log(Level l, Object message);
}


 通过定义输出方法来区分日志的请求的级别:如果c是一个Logger的实例,那么声明 c.info 就是一个INFO级别的日志请求
 
 对于标准级别,我们定义DEBUG < INFO < WARN < ERROR < FATAL.
 
 也可以通过设置appender的additivity flag 为false,来重载appender的默认行为,以便继承的属性不在生效。

log4j的基本使用方法:
  定义配置文件:支持两种格式的文件
  一、配置Logger组件 语法为;
  ## LOGGERS ##
#configure root logger
log4j.rootLogger=INFO,console
#define a logger named helloAppLogger 用户自定义的logger
log4j.logger.helloappLogger=WARN
#define a second logger that is a child to helloAppLogger
log4j.logger.helloappLogger.childLogger=,file

## APPENDERS ##
# define an appender named console, which is set to be a ConsoleAppender
log4j.appender.console=org.apache.log4j.ConsoleAppender

# define an appender named file, which is set to be a RollingFileAppender
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log.txt

## LAYOUTS ##
# assign a SimpleLayout to console appender
log4j.appender.console.layout=org.apache.log4j.SimpleLayout

# assign a PatternLayout to file appender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%t %p - %m%n
 
 
二、在程序重使用log4j
  1。获得日志记录器
    获得root Logger:getRootLogger()
    获得用户自定义的Logger:getLogger(String name);
  2.读取配置文件,配置log4j环境
    BasicConfigurator.configure() 自动快速的使用log4j环节
    pripertyconfigurator.configure(string configfilename):读取java属性格式的配置文件并配置log4j环节
    DOMconfigurator。configure(string filename):读取xml格式的文件
   
  3。插入日志信息
 
如果在web应用中使用log4j,可以创建一个servlert,在它的初始化方法中读取配置文件,并且配置log4j环境
package mypack;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

import org.apache.log4j.PropertyConfigurator;

public class Log4JServlet extends HttpServlet {

  public void init()
    throws ServletException {

    // Get Fully Qualified Path to Properties File
    String path = getServletContext().getRealPath("/");
    String propfile = path + getInitParameter("propfile");

    // Initialize Properties for All Servlets
    PropertyConfigurator.configure(propfile);
  }

}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/293106/viewspace-582256/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 保存客户信息
请登录后发表评论 登录
全部评论

注册时间:2009-03-28

  • 博文量
    62
  • 访问量
    23721