log4j培训ppt
- 格式:pptx
- 大小:449.45 KB
- 文档页数:27
Jakarta Log4j 培训Part 1 : 什么是log4j?log4j是一个Java日志包。
每一个大型的应用程序都需要有日志或者跟踪API,据此,1996年 E. U. SEMPER 项目开发了自己的日志API,这就是log4j API 的前身。
后来经过多次的修改、润色以至重写,这个API发展成了现在Apache Public License下的完善的日志API。
最新的Log4j版本,包括全部的源码,class文件和文档,你可以在/log4j上找到。
顺便,Log4j已经给C, C++,PHP, C#, Python, Ruby, and Eiffel 语言都提供了接口。
Part 2 :做日志有那些好处? 我们为什么选择Log4j?日志是开发和维护大型应用的重要工具。
(1)日志使用简单;(2)在某些场合,比如分布式应用或者多线程环境下,调试器(debugger)可能不适用,最好采用日志的方式;(3)日志可以提供详尽的运行时上下文,从而有助于调试和开发应用;(4)日志一旦被插入,运行时就可以减少很多交互,可以大大提高开发效率;(5)可以作为监控工具使用,比如apache的日志。
Log4j的优点:(1)它提供关于运行程序的准确的环境。
一旦代码被插入,不需要人工干预就可以产生调试信息。
使用者一旦在程序中添加了用于log输出的代码,他们就能通过一个外部的配置文件对这些log信息进行运行时控制而无需重新编译源代码。
(2).通过修改配置文件,就可以按照自己喜欢的格式决定log信息输出到何处(console,文件,...),是否输出。
这样,在系统开发阶段可以打印详细的log 信息以跟踪系统运行情况, 而在系统稳定后可以关闭log输出,从而在能跟踪系统运行情况的同时,又减少了垃圾代码(System.out.println(...)等)。
(3)使用log4j,需要整个系统有一个统一的log机制,有利于系统的规划。
第17章使用log4j进行日志管理17.1、Log4j简介作用:1、跟踪代码的运行轨迹。
2、输出调试信息.三大组成:1、Logger类-生成日志。
2、Appender类-定义日志输出的目的地。
3、Layout类-指定日志输出的格式。
17.1.1 Logger组件日志共分为5种级别,从高到底(从严重到轻微)排序为:FATAL—严重的错误,可能会导致程序不能正常运行.ERROR –错误,影响程序的正常运行。
WARN –警告,不会影响程序的运行。
最好将此问题修正。
INFO –一般信息。
不影响程序的运行。
可能是用户的调试信息。
可有可无。
等同于syserrDEBUG –一般的信息。
等同于sysout上面五种级别分别对应以下几个方法P255fatal(Object)error(Object)warn(Object)info(Object)debug(Object)当信息大于或是等于配置的级别时才会输出日志。
17.1.2、Appender组件(仅要求记住两个)Console –控制台。
org.apache.log4j.ConsoleAppenderFile - 文件。
org.apache.log4j.FileAppender , org.apache.log4j.RollingFileAppender17.1.3、Layout组件功能是定义日志的输出格式org.apache.log4j.HTMLLayoutorg.apache.log4j.PatternLayout (自定义)org.apache.log4j.SimpleLayout对于自定义格式,see page 256 chart 17-1。
%d %p %c %m%n是我经常用的格式,要求记住.%d –具体的时间.%p –优先级%c –信息的输入类%m%n –信息文本17.2、Log4j的基本使用方法(以下以项目ch16为例)步1、将log4j.jar文件,Copy到WEB-INF/lib目录下。
log4j2基础⼊门(超详细)⼀.导包 (2)将下载的.zip(windows中)加压,并将1. log4j-api-×××.jar2. log4j-core-×××.jar 导⼊项⽬中,并BuildPath⼆.调⽤ (1)log4j的级别 log4j规定了默认的⼏个级别:all<trace<debug<info<warn<error<fatal<off (off是最⾼等级,即关闭所有⽇志记录;all是最低等级,即打开所有⽇志记录)Level描述ALL各级包括⾃定义级别DEBUG指定细粒度信息事件是最有⽤的应⽤程序调试ERROR错误事件可能仍然允许应⽤程序继续运⾏FATAL指定⾮常严重的错误事件,这可能导致应⽤程序中⽌INFO指定能够突出在粗粒度级别的应⽤程序运⾏情况的信息的消息OFF这是最⾼等级,为了关闭⽇志记录TRACE指定细粒度⽐DEBUG更低的信息事件WARN指定具有潜在危害的情况 (2)log4j测试 导包后测试⼀下log4j。
代码如下: public class Log4jTest {private static Logger logger = LogManager.getLogger(Log4jTest.class.getName());public static void main(String[] args) {logger.trace("entry"); //trace级别的信息,和logger.entry() 基本⼀个意思,但已经过时logger.debug("我是debug信息");("我是info信息");logger.warn("我是warning信息");logger.error("我是error信息");logger.fatal("我是fatal信息");logger.trace("exit");////和entry()对应的结束⽅法,和logger.exit()⼀个意思,同样已经过时}} 输出信息:ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set system property 'log4j2.debug' to show Log4j2 internal initialization logging. 09:48:26.531 [main] ERROR com.sp.test.Log4jTest - 我是error信息09:48:26.533 [main] FATAL com.sp.test.Log4jTest - 我是fatal信息 结果只输出了error和fatal的信息,并且给出了原因,原因就是:没有找到log4j2的配置⽂件,便使⽤了默认的配置,仅仅显⽰error及以上级别的⽇志。
1 log4j初步1.1log4j介绍在项目运行的过程中,可能会出现一些需要保存或者显示的信息,这些信息包括:(1)用户操作的错误信息;(2)程序运行的过程;(3)代码调试的信息等。
我们希望周期性的将这些信息记录在日志文件或者打印到控制台,这已经成为一个很常见的需求。
举一个简单的例子,在编程的时候常常会遇到这样的问题:一个JavaBean里面有一些操作,但是有可能出现异常,此时我们想要了解到底是哪个地方出现的异常。
要求:如果出现异常,将内容保存在日志文件,供日后用户参考。
如果用传统的方法,可以自己写一段读写文件的代码,每当使用记录日志功能时,调用读写文件的模块,将这些信息写到日志文件中。
不过,该功能太公用,很多项目里面都要出现,各自编写自己的代码,无法标准化。
于是,Apache团队编写了log4j的支持包,经过了严密的测试,可以让我们用比较简单的方法来处理日志问题。
本节使用一个简单的案例来说明问题。
要求:编写美元转人民币的用例。
首先使用IDE 建立一个Web项目。
用户从表单将数据提交,我们希望一个JavaBean来实现转换过程,所以另外编写一个类Converter。
Converter.javapackage util;public class Converter {public static String convert(String str) {double rate = 6;double usd = Double.parseDouble(str);double rmb = usd * rate;String strRmb = String.valueOf(rmb);return strRmb;}}最后在convertForm.jsp中提供了一个表单,并调用Converter。
convertForm.jsp<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@page import="util.Converter"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd">编写完成后,运行jsp页面,输入数值“100”,如图1-1所示。
Log4j学习笔记一、log4j的简介1、为什么使用日志◆开发阶段使用日志:发现程序的问题,排错◆产品阶段使用日志:记录运行的状况,发现bug并解决2、System.out.println的局限性◆不能在运行时打开或关闭打印功能◆不能指定选择包或类◆不能输出分级的信息◆只能输出文本信息,不能保存到文件或数据库◆不能改变输出的位置,只能打印到屏幕3、log4j的简介◆log4j是当前最流行的java日志处理框架◆Apache的子项目◆开源软件二、log4j的下载和安装/log4j◆log4j有3个版本:1.2 最常用的版本;1.3 已终止的版本;2.0 实验型的版本◆因此,我们下载log4j 1.2 ,点击以上”log4j”菜单,在弹出页面的左上角点击”download”,下载对应的log4j压缩包(例如:apache-log4j-1.2.16.zip),然后解压(最好将所有相关类库统一存放在一个目录下,例如:d:\javalib)◆将解压后的log4j-1.2.16.jar文件添加到当前项目的classpath中。
三、log4j的基本使用import org.apache.log4j.*;public class HelloLog4j{private static Logger logger=Logger.getLogger(HelloLog4j.class);public static void main(String [] args){logger.debug(“this is the main method”);(“welcome to first log4j”);logger.error(“This is an error message”)}}运行这个例子,需要log4j.properties,log4j.properties的配置如下:log4j.rootLogger=debug,appender1 //设定log4j的级别和appenderlog4j.appender.appender1=org.apache.log4j.ConsoleAppender//appender的类型(终端)yout=org.apache.log4j.TTCCLayout //样式(普通TTCC)log4j.rootLogger=info.appender2 //级别为infolog4j.appender.appender2=org.apache.log4j.FileAppender //appender保存到文件log4j.appender.appender2.File=c:/log4j.log 或c:/log4j.htm //文件名(可以是html)yout=org.apache.log4j.TTCCLayout或HTMLLayout 可以使用HTML样式四、log4j的核心log4j的核心由以下4个部件组成:⏹Logger:完成日志信息的处理⏹Appender:设置日志信息的去向⏹Layout:设置日志信息的输出样式⏹配置文件:配置以上信息(log4j.properties或log4j.xml,名称可以改变)1、Logger◆Logger可以定义输出的层次和决定信息的输出级别(怎样的信息可以输出)◆Logger输出的信息主要有以下8种:All,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF我们主要使用:DEBUG,INFO,WARN,ERROR4种◆Logger输出信息的级别:All<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF◆如果我们指定了输出的级别,则只能输出大于等于指定级别的信息,例如:我们指定输出级别为:INFO,则只能输出INFO ,W ARN,ERROR,FATAL,OFF级别的信息◆在程序中,我们可以使用Logger定义的方法进行对应级别信息的输出:logger.debug(“x=”+x);(“System started at ”+new Date());logger.warn(“server down - returning”);logger.error(“can not access server”,e);2、Appender◆Appender可以定义为日志添加器,可以指定将日志信息输出到哪里。