log4gWord文档下载推荐.docx

上传人:b****6 文档编号:18872158 上传时间:2023-01-01 格式:DOCX 页数:10 大小:19.97KB
下载 相关 举报
log4gWord文档下载推荐.docx_第1页
第1页 / 共10页
log4gWord文档下载推荐.docx_第2页
第2页 / 共10页
log4gWord文档下载推荐.docx_第3页
第3页 / 共10页
log4gWord文档下载推荐.docx_第4页
第4页 / 共10页
log4gWord文档下载推荐.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

log4gWord文档下载推荐.docx

《log4gWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《log4gWord文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。

log4gWord文档下载推荐.docx

从http:

//jakarta.apache.org/log4j/docs/download.html下载log4j发行版。

解压存档文件到合适的目录中。

添加文件dist/lib/log4j-1.2.6.jar到CLASSPATH环境变量中。

3.log4j的基本概念

使用log4j大概涉及3个主要概念:

公共类Logger

Logger负责处理日志记录的大部分操作。

公共接口Appender

Appender负责控制日志记录操作的输出。

公共抽象类Layout

Layout负责格式化Appender的输出。

3.1.Logger

日志记录器(Logger)是日志处理的核心组件。

log4j具有5种正常级别(Level)。

日志记录器(Logger)的可用级别Level(不包括自定义级别Level),以下内容就是摘自log4jAPI(http:

//jakarta.apache.org/log4j/docs/api/index.html):

staticLevelDEBUG

DEBUGLevel指出细粒度信息事件对调试应用程序是非常有帮助的。

staticLevelINFO

INFOlevel表明消息在粗粒度级别上突出强调应用程序的运行过程。

staticLevelWARN

WARNlevel表明会出现潜在错误的情形。

staticLevelERROR

ERRORlevel指出虽然发生错误事件,但仍然不影响系统的继续运行。

staticLevelFATAL

FATALlevel指出每个严重的错误事件将会导致应用程序的退出。

另外,还有两个可用的特别的日志记录级别:

(以下描述来自log4jAPIhttp:

staticLevelALL

ALLLevel是最低等级的,用于打开所有日志记录。

staticLevelOFF

OFFLevel是最高等级的,用于关闭所有日志记录。

日志记录器(Logger)的行为是分等级的。

日志记录器(Logger)将只输出那些级别高于或等于它的级别的信息。

如果没有设置日志记录器(Logger)的级别,那么它将会继承最近的祖先的级别。

因此,如果在包com.foo.bar中创建一个日志记录器(Logger)并且没有设置级别,那它将会继承在包com.foo中创建的日志记录器(Logger)的级别。

如果在com.foo中没有创建日志记录器(Logger)的话,那么在com.foo.bar中创建的日志记录器(Logger)将继承root日志记录器(Logger)的级别,root日志记录器(Logger)经常被实例化而可用,它的级别为DEBUG。

有很多方法可以创建一个日志记录器(Logger),下面方法可以取回root日志记录器:

Loggerlogger=Logger.getRootLogger();

还可以这样创建一个新的日志记录器:

Loggerlogger=Logger.getLogger("

MyLogger"

);

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

staticLoggerlogger=Logger.getLogger(test.class);

所有这些创建的叫"

logger"

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

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

可以使用7个级别中的任何一个;

Level.DEBUG,Level.INFO,Level.WARN,Level.ERROR,Level.FATAL,Level.ALLandLevel.OFF.

3.2.Appender

Appender控制日志怎样输出。

下面列出一些可用的Appender(log4jAPI中所描述的http:

ConsoleAppender:

使用用户指定的布局(layout)输出日志事件到System.out或者System.err。

默认的目标是System.out。

DailyRollingFileAppender扩展FileAppender,因此多个日志文件可以以一个用户选定的频率进行循环日志记录。

FileAppender把日志事件写入一个文件

RollingFileAppender扩展FileAppender备份容量达到一定大小的日志文件。

WriterAppender根据用户的选择把日志事件写入到Writer或者OutputStream。

SMTPAppender当特定的日志事件发生时,一般是指发生错误或者重大错误时,发送一封邮件。

SocketAppender给远程日志服务器(通常是网络套接字节点)发送日志事件(LoggingEvent)对象。

SocketHubAppender给远程日志服务器群组(通常是网络套接字节点)发送日志事件(LoggingEvent)对象。

SyslogAppender给远程异步日志记录的后台精灵程序(daemon)发送消息。

TelnetAppender一个专用于向只读网络套接字发送消息的log4jappender。

还可以实现Appender接口,创建以自己的方式进行日志输出的Appender。

3.2.1.使用ConsoleAppender

ConsoleAppender可以用这种方式创建:

ConsoleAppenderappender=newConsoleAppender(newPatternLayout());

创建了一个控制台appender,具有一个默认的PatternLayout。

它使用了默认的System.out输出。

3.2.2.使用FileAppender

FileAppender可以用这种方式创建:

FileAppenderappender=null;

try{

appender=newFileAppender(newPatternLayout(),"

filename"

}catch(Exceptione){}

上面用到的构造函数:

FileAppender(Layoutlayout,Stringfilename)

实例化一个FileAppender并且打开变量"

指定的文件。

另一个有用的构造函数是:

FileAppender(Layoutlayout,Stringfilename,booleanappend)

这个构造函数还可以选择是否对指定的文件进行追加的方式输出。

如果没有指定值,那么默认的方式就是追加。

3.2.3.使用WriterAppender

WriterAppender可以用这种方式创建:

WriterAppenderappender=null;

try{

appender=newWriterAppender(newPatternLayout(),newFileOutputStream("

));

}catch(Exceptione){}

这个WriterAppender使用的构造函数带有PatternLayout和OutputStream参数,在这种情况下,FileOutputStream用于向一个文件输出。

当然,它还具有其他可用的构造函数。

3.3.Layout

Appender必须使用一个与之相关联的Layout,这样它才能知道怎样格式化它的输出。

当前,log4j具有三种类型的Layout:

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

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

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

3.4.基本示例

3.4.1.SimpleLayout和FileAppender

这里是一个非常简单的例子,程序实现了SimpleLayout和FileAppender:

importorg.apache.log4j.Level;

importorg.apache.log4j.Logger;

importorg.apache.log4j.SimpleLayout;

importorg.apache.log4j.FileAppender;

publicclasssimpandfile{

staticLoggerlogger=Logger.getLogger(simpandfile.class);

publicstaticvoidmain(Stringargs[]){

SimpleLayoutlayout=newSimpleLayout();

FileAppenderappender=null;

try{

appender=newFileAppender(layout,"

output1.txt"

false);

}catch(Exceptione){}

logger.addAppender(appender);

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

logger.debug("

HereissomeDEBUG"

logger.info("

HereissomeINFO"

logger.warn("

HereissomeWARN"

logger.error("

HereissomeERROR"

logger.fatal("

HereissomeFATAL"

}

}

你可以下载:

simpandfile.java。

还可以查看它的输出:

output1.txt.

3.4.2.HTMLLayout和WriterAppender

这里是一个非常简单的例子,程序实现了HTMLLayout和WriterAppender:

importjava.io.*;

importorg.apache.log4j.HTMLLayout;

importorg.apache.log4j.WriterAppender;

publicclasshtmlandwrite{

staticLoggerlogger=Logger.getLogger(htmlandwrite.class);

HTMLLayoutlayout=newHTMLLayout();

WriterAppenderappender=null;

FileOutputStreamoutput=newFileOutputStream("

output2.html"

appender=newWriterAppender(layout,output);

simpandfile.java.还可以查看它的输出:

output1.txt.

3.4.3.PatternLayout和ConsoleAppender

这里是一个非常简单的例子,程序实现了PatternLayout和ConsoleAppender:

importorg.apache.log4j.PatternLayout;

importorg.apache.log4j.ConsoleAppender;

publicclassconsandpatt{

staticLoggerlogger=Logger.getLogger(consandpatt.class);

//Note,%nisnewline

Stringpattern="

Millisecondssinceprogramstart:

%r%n"

;

pattern+="

Classnameofcaller:

%C%n"

DateinISO8601format:

%d{ISO8601}%n"

Locationoflogevent:

%l%n"

Message:

%m%n%n"

PatternLayoutlayout=newPatternLayout(pattern);

ConsoleAppenderappender=newConsoleAppender(layout);

simpandfile.java.还可以查看它的输出:

output2.txt.

4.使用外部配置文件

Log4j经常与外部日志文件联合使用,这样很多可选项不必硬编码在软件中。

使用外部配置文件的优点就是修改可选项不需要重新编译程序。

唯一的缺点就是,由于用到io指令,速度稍微有些减慢。

有两个方法可以用来指定外部配置文件:

文本文件或者XML文件。

既然现在所有事情都写成XML文件,那么该教程就重点讲解XML文件方法,但是也包含相关文本文件的例子。

首先,看看下面的XML配置文件示例:

<

?

xmlversion="

1.0"

encoding="

UTF-8"

?

>

!

DOCTYPElog4j:

configurationSYSTEM"

log4j.dtd"

log4j:

configurationxmlns:

log4j="

http:

//jakarta.apache.org/log4j/"

<

appendername="

ConsoleAppender"

class="

org.apache.log4j.ConsoleAppender"

layoutclass="

org.apache.log4j.SimpleLayout"

/>

/appender>

root>

priorityvalue="

debug"

/>

appender-refref="

/root>

/log4j:

configuration>

文件以标准的XML声明作为开始,后面跟着指出DTD(文档类型定义)的DOCTYPE声明,它定义了XML文件的结构,例如,什么元素可以嵌入在其他元素中等等。

上面文件在log4j发行版的src/java/org/apache/log4j/xml目录中。

接着看看封装所有元素的log4j:

configuration元素,它在DOCTYPE声明中被指定为根元素。

嵌入在根元素中有两个结构:

这里创建一个名叫"

的Appender,注意,你可以选择任何名字,该示例之所以选择"

,完全是为了示例的设计。

接着这个appender类以全名形式给出,经常用规范(fullyqualified)类名。

Appender必须具有一个指定的name和class。

嵌入在Appender之内的是layout元素,这里它被指定为SimpleLayout。

Layout必须具有一个class属性。

root元素必须存在且不能被子类化。

示例中的优先级被设置为"

,设置appender饱含一个appender-ref元素。

还有更多的属性或元素可以指定。

查看log4j发行版中的src/java/org/apache/log4j/xml/log4j.dtd以了解关于XML配置文件结构的更多信息。

可以用下面这种方法把配置信息文件读入到Java程序中:

DOMConfigurator.configure("

configurationfile.xml"

DOMConfigurator用一棵DOM树来初始化log4j环境。

这里是示例中的XML配置文件:

plainlog4jconfig.xml。

这里是执行该配置文件的程序:

files/externalxmltest.java:

importorg.apache.log4j.xml.DOMConfigurator;

publicclassexternalxmltest{

staticLoggerlogger=Logger.getLogger(filetest.class);

DOMConfigurator.configure("

xmllog4jconfig.xml"

这里是一个实现带有PatternLayout的FileAppender的日志记录器Logger的XML配置文件:

appender"

org.apache.log4j.FileAppender"

paramname="

File"

value="

Indentify-Log.txt"

Append"

false"

org.apache.log4j.PatternLayout"

ConversionPattern"

%d[%t]%p-%m%n"

/layout>

你可以从这里下载示例:

xmllog4jconfig2.xml。

想要得到更多的使用XML文件配置log4j环境的例子,请查看log4j发行版的目录src/java/org/apache/log4j/xml/examples/。

这就是上面讨论的文本文件形式的配置文件:

#initialiserootloggerwithlevelDEBUGandcall

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1