tceic.com
学霸学习网 这下你爽了
当前位置:首页 >> IT/计算机 >>

5. Log4J日志的使用_图文

Log4J

日志管理
为什么在应用程序中使用日志? 监视代码中变量的变化情况,把数据周期 性地记录到文件或其他应用系统进行统计 分析 跟踪代码运行时的轨迹,作为日后审计的 依据 在集成开发环境中起调试作用,向文件或

日志包的引入
程序中的日志记录,通常是由嵌入在程序 中的一些打印语句所组成。例如,最常见 的System.out.println()语句。 使用专门的日志记录包,可以减轻成千上 万的打印语句的维护成本,因为专门的日 志包可以通过配置文件在运行时得以控制。 应该鼓励通过规范日志记录的处理过程, 更多的使用日志记录并且获得更高效率。

Log4J介绍
log4j是Apache组织提供的一个日志组件,也 是一个基于许多作者的开放源代码项目。 它允许开发员以任意的间隔来控制日志的 输出,利用它可以在不更改程序的情况下, 通过外部的配置文件而达到运行时灵活的 设置,以调控日志的输出。 log4j提供分级方法在程序中嵌入日志记录 语句,并且日志信息具有多种输出格式和 多个输出级别。

Log4J安装
从以下地址下载安装包 http://jakarta.apache.org/log4j/docs/downl oad.html 解压存档文件到合适的目录中 添加文件 dist/lib/log4j-1.2.6.jar 到 CLASSPATH 环境变量中或拷贝到相应项 目目录中

Log4J的三个主要概念
1. 公共类 Logger
Logger 负责处理日志记录的大部分操作。

2. 公共接口 Appender
Appender 负责控制日志记录操作的输出。

3. 公共抽象类Layout
Layout 负责格式化Appender的输出。

Log4J类图

Logger(一)
日志记录器(Logger)是日志处理的核心组件。 log4j具有5种正常级别(Level): static Level DEBUG
指出对调试应用程序是有帮助的细粒度信息事件

static Level INFO
表明消息在粗粒度级别上强调应用程序的运行过 程

static Level WARN
表明会出现潜在错误的情形

Logger(二)
日志记录器(Logger)的行为是分等级的。 日志记录器将只输出那些级别高于或等于 它设置的级别的信息。如果没有设置日志 记录器的级别,日志记录器将继承root 日 志记录器的级别,root日志记录器经常被实 例化而可用,它的级别为DEBUG。

Logger(三)
创建一个日志记录器(Logger)的方式有 多种: 下面方法可以取到root日志记录器:

Logger log = Logger.getRootLogger();
还可以如下创建一个新的日志记录器:

Logger log = Logger.getLogger("MyLogger");

Logger(四)
所有这些创建的叫"log"的日志记录器都可 以用下面方法设置级别:

log.setLevel((Level)Level.WARN);
可以使用5个级别中的任何一个: Level.DEBUG Level.INFO Level.WARN Level.ERROR Level.FATAL

Appender(一)
Appender 控制日志怎样输出 下面列出一些可用的Appender: 1. ConsoleAppender: 使用用户指定的布局 (layout) 输出日志事件到System.out或者 System.err。默认的目标是System.out。 ConsoleAppender可以用以下方式创建: ConsoleAppender appender = new ConsoleAppender(new

Appender(二)
2. FileAppender 把日志事件写入一个文件, FileAppender可以用以下方式创建:

FileAppender appender = new FileAppender(new PatternLayout(),"filename");
说明: 上面用到的构造函数 FileAppender(Layout layout, String filename) 实例化一个FileAppender并且打开变量“filename”指定的文件。 另一个有用的构造函数是:
FileAppender(Layout layout, String filename, boolean append)

Appender(三)
3. DailyRollingFileAppender 扩展 FileAppender,可以实现多个日志文件,并 以用户选定的频率进行循环日志记录。 4. RollingFileAppender 扩展FileAppender, 备份容量达到一定大小的日志文件。 5. WriterAppender 根据用户的选择把日志事 件写入到Writer或者OutputStream,可以用 以下方式创建:

Appender(四)
6. SMTPAppender 当特定的日志事件发生时, 一般是指发生错误或者重大错误时,发送 一封邮件。 7. SocketAppender 给远程日志服务器(通常 是网络套接字节点)发送日志事件 (LoggingEvent)对象。 。。。。。。 此外,我们还可以实现Appender接口,创

Layout(一)
Appender必须使用一个与之相关联的 Layout,这样它才能知道怎样格式化它的 输出。目前,log4j具有三种类型的Layout: 1. HTMLLayout 格式化日志输出为HTML表 格。 2. PatternLayout 根据指定的转换模式格式 化日志输出,或者如果没有指定任何转换 模式,就使用默认的转换模式。

Layout(二)
Log4J采用类似C语言中的printf函数的打 印格式格式化日志信息 打印参数如下: %m 输出代码中指定的消息 %p 输出优先级,即DEBUG,INFO, WARN,ERROR等 %r 输出自应用启动到输出该log信息耗 费的毫秒数 %c 输出所属的类目,通常就是所在类 的全名

示例(一)
1、实现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 {

示例(一)
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");

}

}

示例(一)
输出结果:
DEBUG - Here is some DEBUG INFO - Here is some INFO WARN - Here is some WARN ERROR - Here is some ERROR FATAL - Here is some FATAL

示例(二)
2、实现HTMLLayout和WriterAppender的简单的 例子:
mport java.io.*; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.HTMLLayout; import org.apache.log4j.WriterAppender; public class htmlandwrite {
static Logger logger = Logger.getLogger(htmlandwrite.class); public static void main(String args[]) {
HTMLLayout layout = new HTMLLayout();

示例(二)
try { FileOutputStream output = new FileOutputStream(“log.html"); appender = new WriterAppender(layout, output); } catch(Exception e) { // Exception handle} 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");

}

}

示例(二)
输出结果(log.html):

示例(三)
2、实现PatternLayout和ConsoleAppender 的简单的例子:
import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.PatternLayout; import org.apache.log4j.ConsoleAppender; public class consandpatt {
static Logger logger = Logger.getLogger(consandpatt.class);

示例(三)
pattern += "Classname of caller: %C %n"; pattern += "Date in ISO8601 format: %d{ISO8601} %n"; pattern += "Location of log event: %l %n"; pattern += "Message: %m %n %n"; PatternLayout layout = new PatternLayout(pattern); ConsoleAppender appender = new ConsoleAppender(layout); 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");

}

}

示例(三)
输出结果:
Milliseconds since program start: 0 Classname of caller: consandpatt Date in ISO8601 format: 2004-04-28 17:12:37,244 Location of log event: consandpatt.main(consandpatt.java:22) Message: Here is some DEBUG Milliseconds since program start:0 Classname of caller: consandpatt Date in ISO8601 format: 2004-04-28 17:12:37,244 Location of log event:

使用外部配置文件
Log4j开发包能够在代码中灵活控制log输出, 但是通过配置文件去实现Log信息的控制比 在代码中实现更加灵活、方便。 目前,Log4j的配置文件支持XML格式和 JAVA properties (key - value) 格式。

使用Property文件配置Log4J(一)
log4j.properties # initialise root logger with level DEBUG and call it BLAH log4j.rootLogger=DEBUG, BLAH # add a ConsoleAppender to the logger BLAH log4j.appender.BLAH=org.apache.log4j.ConsoleAppender # set set that layout to be SimpleLayout log4j.appender.BLAH.layout=org.apache.log4j.SimpleLayo ut

使用Property文件配置Log4J(二)
import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class PropertyConfigTest { static Logger logger = Logger.getLogger(PropertyConfigTest.c lass); public static void main(String args[]) {

使用XML配置Log4J(一)
log4j.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="appender" class="org.apache.log4j.FileAppender"> <param name="File" value=“log.txt" /> <param name="Append" value="false" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern"

使用XML配置Log4J(二)
import org.apache.log4j.Logger; import org.apache.log4j.xml.DOMConfigurator; public class XMLConfigTest { static Logger logger = Logger.getLogger(XMLConfigTest.class); public static void main(String args[]) { DOMConfigurator.configure(“log4j.x ml");

其他话题
级别继承 日志优化 NDC (Nested Diagnostic Contexts) JCL (Jakarta Commons Logging) ……


推荐相关:

Log4J日志的使用_图文.ppt

Log4J日志的使用 - java log4j的使用说明... Log4J类图 Logger(一)日志记录器(Logger)是日志处理的核心组件。 log4j具有5种正常级别(Level): static Level DEBUG 指...

使用log4j记录日志资料_图文.ppt

使用log4j记录日志资料 - 使用log4j记录日志信息 public cla

Log4j配置和使用_图文.ppt

Log4j配置和使用_互联网_IT/计算机_专业资料。log4j日志配置使用介绍

Log4j日志技术_图文.ppt

Log4j日志技术_IT/计算机_专业资料。由简入敏完整地介绍了log4j技术,以及在...5. Log4J日志的使用 32页 1下载券 使用Log4j打印日志 11页 免费 日志记录(...

log4j教程_图文.pdf

import org.apache.log4j.Logger; /** * *@2015 年 5 月 18 日 9:14:...二、Log4j 基本使用方法 Log4j 由三个重要的组件构成:日志信息的优先级,日志...

java日志学习总结(logback,log4j)_图文.ppt

apache.log4j.RollingFileAppender 5.org.apache.log4j.WriterAppender log4j....推荐使用第二种 在方法中输出日志 log.debug(msg)输出debug信息 log.info(msg...

Log4j日志操作 详解,详细讲解log4j的使用,和原理.doc

Log4j日志操作 详解,详细讲解log4j的使用,和原理 - 详细讲解 Java 中 log4j 的使用方法 发布时间:2007.07.31 08:09 来源:赛迪网 作者:dxaw 1、L...

日志框架log4j和slf4j入门教程_图文.pdf

《日志框架入门》深入浅出系列精品教程 配置示例-2 log4j.appender.javass....5. Log4J日志的使用 32页 1下载券 日志技术log4j的学习 11页 1下载券 使用...

log4j_图文.doc

按 MDC(Mapped Diagnostic %X{5} (记录代号为 5 的客户端的日志) Context,...放在这些目录下,那么 log4j 会“自动去加载”到,不用程序里手工写 加载代码了...

j5日志工具_图文.ppt

5日志工具 内容回顾 什么是版本管理工具 版本管理工具的作用 常见的版本管理...使用Log4j控件 如何输出日志 本讲任务 使用JDK的Loggin做日志 使用Log4j日志 ...

log4j和slf4j日志框架入门_图文.pdf

通过使用Log4j,可以控制日志信 息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记 录器等;也可以控制每一条日志的输出格式;通过定义每一...

log4j日志输出规范.doc

库主件目前log4j 2.0 版本需要JAVA5(logging services designed for Java 5 and...输出方式 Log4j 允许日志请求被输出到多个输出源。 Log4j 的话说,一个输出源...

Log4j 日志内容详解.doc

Log4j 日志内容详解_计算机软件及应用_IT/计算机_专业资料。Log4j配置属性详解,...信息 实际使用:logger.info("ServerSocket before accept: " + server); 5. ...

log4j日志框架的设计和实现.doc

5. 6. 高性能。日志系统通常要提供高速的日志记录功能以应对大系统下大请求...系统设计 2 由于 Log4J 得到广泛应用,从使用者的角度考虑,本文所设计的框架,...

Log4j_图文.ppt

每天两次 5)'.'yyyy-MM-dd-HH: 每小时 6)'.'yyyy-MM-dd-HH-mm: 每分钟...然 后就可以在log4j使用日志级别和Threshold 如果 com.logger 的级别为 ...

JAVA中使用Log4j进行日志操作.pdf

JAVA中使用Log4j进行日志操作 - 使用Log4j进行日志操作 一、Log4j简介 (1)概述 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的...

log4j_图文.ppt

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以 控制日志信息 输送的...(文件大小到达指定尺寸的时候产生一个新 的文件) 5.org.apache.log4j.Writer...

使用log4j日志组件实现Web项目的日志管理.doc

使用log4j日志组件实现Web项目的日志管理 - myeclipse10, log4j... 使用log4j 日志组件实现 Web 项目的日志管理练习目标: ? ? 练习使用 log4j 日志组件实现项目的日志...

使用log4j日志组件实现Web项目的日志管理.pdf

使用log4j日志组件实现Web项目的日志管理_计算机软件及应用_IT/计算机_专业资料。...2. 3. 4. 5. 6. %c 输出日志信息所属的类的全名 %d 输出日志时间点的...

log4j使用指南.doc

log4j使用指南 - 1 概述 本文档是针对 Log4j 日志工具的使用指南。

网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com