ITPub博客

首页 > IT基础架构 > 网络安全 > Log4j说明

Log4j说明

原创 网络安全 作者:nighthun 时间:2007-07-17 11:49:07 0 删除 编辑

目的

Log4J入门,讲解Log4J的安装、基本概念、简单用法、外部配置文件方式。

环境

jakarta-log4j-1.2.8.zip

步骤

一、安装

1. 解开压缩文档,并且将distliblog4j-1.2.8.jar的路径设置到CLASSPATH。

2. 测试是否安装正确。使用下面的java应用程序代码:

import org.apache.log4j.Logger;

import org.apache.log4j.BasicConfigurator;

public class Hello {

static Logger logger = Logger.getLogger(Hello.class);

public

static

void main(String argv[]) {

BasicConfigurator.configure();

logger.debug("Hello world.");

logger.info("What a beatiful day.");

}

}

进行测试。如果在操作台输出类似:

0 [main] DEBUG simple.Hello - Hello world.

20 [main] INFO simple.Hello - What a beatiful day.

的内容,那么正确。

二、Log4j的基本概念

1. Log4j包含3个主要概念:

公共类 Logger 负责处理日志记录的大部分操作。 公共接口 Appender 负责控制日志记录操作的输出。 公共抽象类Layout 负责格式化Appender的输出。

2. 公共类 Logger提供两个主要方法:创建一个日志记录器(Logger),定义日志级别。

3. 常用的用法,就是根据类名实例化一个静态的全局日志记录器:

static Logger logger = Logger.getLogger(test.class);

4. 日志记录器都可以用下面方法设置级别:

logger.setLevel((Level)Level.WARN);

5. 公共类 Logger 中定义了日志的7个级别, Level.DEBUG、Level.INFO、 Level.WARN、 Level.ERROR、Level.FATAL、 Level.ALL 、 Level.OFF。

6. 公共接口 Appender提供设置日志记录的输出方式的方法。比较常用的有:ConsoleAppender:使用用户指定的布局(layout) 输出日志事件到System.out或者 System.err。默认的目标是System.out。 FileAppender 把日志事件写入一个文件。SMTPAppender 当特定的日志事件发生时,一般是指发生错误或者重大错误时,发送一封邮件。

7. ConsoleAppender可以用这种方式创建:

ConsoleAppender appender = new ConsoleAppender(new PatternLayout());

8. FileAppender可以用这种方式创建:使用构造函数:

FileAppender(Layout layout, String filename)

实例化一个FileAppender并且打开变量"filename"指定的文件。

另一个构造函数是:

FileAppender(Layout layout, String filename, boolean append)

这个构造函数可以选择是否对指定的文件进行追加的方式输出。如果没有指定值,那么默认的方式就是追加。

9. Appender必须使用一个与之相关联的 Layout,这样它才能知道怎样格式化它的输出。当前,log4j具有三种类型的Layout:

HTMLLayout 格式化日志输出为HTML表格。

PatternLayout 根据指定的 转换模式格式化日志输出,或者如果没有指定任何转换模式,就使用默认的转换模式。

SimpleLayout 以一种非常简单的方式格式化日志输出,它打印级别 Level,然后跟着一个破折号“-“ ,最后才是日志消息。

三、简单例子

1. 在Java application 中使用Log4J

程序实现了SimpleLayout和FileAppender:

import org.apache.log4j.Level;

import org.apache.log4j.Logger;

import org.apache.log4j.SimpleLayout;

import org.apache.log4j.FileAppender;

public class simpandfile {

static Logger logger = Logger.getLogger(simpandfile.class);

public static void main(String args[]) {

SimpleLayout layout = new SimpleLayout();

FileAppender appender = null;

try {

appender = new FileAppender(layout,"output1.txt",false);

} catch(Exception e) {}

logger.addAppender(appender);

logger.setLevel((Level) Level.DEBUG);

logger.debug("Here is some DEBUG");

logger.info("Here is some INFO");

logger.warn("Here is some WARN");

logger.error("Here is some ERROR");

logger.fatal("Here is some FATAL");

}

}

2. 单独在JSP中使用Log4J(暂无)

四、使用外部配置文件

1. 使用外部配置文件的优缺点:Log4j经常与外部日志文件联合使用,这样很多可选项不必硬编码在软件中。使用外部配置文件的优点就是修改可选项不需要重新编译程序。唯一的缺点就是,由于用到io 指令,速度稍微有些减慢。

2. 有两个方法可以用来指定外部配置文件:文本文件或者XML文件。下面重点讲解XML文件方法。

3. 看看下面的XML配置文件示例:

4. 配置xml文件的位置:和java程序放到一个目录下。

另外,log4j.dtd也要放到同一目录下,log4j.dtd文件在srcjavaorgapachelog4jxml。

5. 执行该配置文件的程序:

import org.apache.log4j.Logger;

import org.apache.log4j.PropertyConfigurator;

public class externalplaintest {

static Logger logger = Logger.getLogger(externalplaintest.class);

public static void main(String args[]) {

PropertyConfigurator.configure("plainlog4jconfig.xml");

logger.debug("Here is some DEBUG");

logger.info("Here is some INFO");

logger.warn("Here is some WARN");

logger.error("Here is some ERROR");

logger.fatal("Here is some FATAL");

}

}

存在的问题

无

相关资源

英文Log4J的简单手册:

http://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/log4j/log4j.html

中文Log4J的简单手册:CSDN文档中心

英文Log4J的详细手册的草稿:《log4j The Complete Manual.pdf》[@more@]

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

上一篇: SYBASE IQ 基本知识
下一篇: Hibernate 查询语句
请登录后发表评论 登录
全部评论
  • 博文量
    60
  • 访问量
    258202