log4j培训ppt

合集下载

Log4j日志技术精品PPT课件

Log4j日志技术精品PPT课件
会自动改名 - org.apache.log4j.WriterAppender; 将日志信息以流格式发送到任意指定的地方 - org.apache.log4j.jdbc.JDBCAppender; 通过JDBC把日志信息输出到数据库中 - .SMTPAppender; 将日志信息以邮件的方式发送到指定的邮箱
public class Demo1 { private static Logger logger = Logger.getLogger(Demo1.class);
public static void main(String[] args) { int x = 1; logger.debug("Demo1的x变量的值为:" + x);
Log4j日志技术
概述
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制 日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、 NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的 输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志 的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进 行配置,而不需要修改应用的代码。
}
指定输出器输出格式的几个例子
• 举例:
使用Log4j输出程序信息
控制输出级别:level 是日志记录的优先级,分为OFF、FATAL、ERROR、 WARN、INFO、DEBUG、ALL。
Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、 DEBUG。通过在这里定义的级别,您可以控制程序中log.error()、 log.warn() 、()、log.debug() 等方法是否输出。

Jakarta Log4j培训手册

Jakarta Log4j培训手册

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机制,有利于系统的规划。

java日志学习总结(logback,log4j)PPT课件

java日志学习总结(logback,log4j)PPT课件

Layout
• 日志信息输出格式
• yout=PatternLayout • org.apache.log4j.HTMLLayout(以HTML表格形式布局), • org.apache.log4j.PatternLayout(可以灵活地指定布局模式), • org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符
TimeBasedRollingPolicy,但是有两个限制,1不支持也不允许文件压 缩,2不能设置file属性,必须留空
rollingPolicy
• TimeBasedRollingPolicy:根据时间滚动 • 子节点<>必要,包含文件名以及%d{simpleDateFormate||null} • <maxHistory>可选,控制保留的归档文件最大数,超出则删除旧文件 • FixedWindowRollingPolicy: 根据固定窗口算法重命名文件的滚动策略 • 子节点<minIndex>窗口索引最小值<maxindex>窗口索引最大值,窗口过大
• <appender> • </appender> • <Logger> • </logger> • <root >(就是一个logger,名字叫root 不可变)
• <appender-ref ref=""/>
• </root>
• </configuration>
Appender
• ch.qos.logback.core.ConsoleAppender 控制台 • 子节点:<encoder><target> • 文件 • 子节点:<file>文件名,<append>追加还是覆盖<encode>,<prudent>是

log4j

log4j
设置日志消息的初始级别 设置日志信息是否立即输出, 默认为true 设置操作类型 System.out 默认值 System.err
FileAppender Threshold ImmediateFlush File
设置日志消息的初始级别 设置日志信息是否立即输出,默认为true 设置输出的文本 默认值是true,新增文件内容是否覆盖原 有内容,false为覆盖
org.apache.log4j.PatternLayout 可以灵活地指定布局模式 ConversionPattern=%m%n :指定怎样格式化指定的消息.
占位符参考log4j API
org.apache.log4j.SimpleLayout
包含日志信息的级别和信息字符串,内 置的简单布局没有提供自定义设置 包含日志产生的时间,线程,类别等等 信息
Append
DailyRollingFileAppender DatePattern的格式符 的格式符 Threshold '.'yyyy-MM
设置日志消息的初始级别 每月
#在配置文件中设置: '.'yyyy-ww 每周 ImmediateFlush 设置日志信息是否立即输出,默认为true #设置为每月输出 log4j.appender.MyAppenderName.DatePattern = '.'yy-MM '.'yyyy-MM-dd 每天 //在程序中使用 设置输出的文本 File //设置为每月输出 '.'yyyy-MM-dd-a 每天两次 myFile. setDatePattern ("'.true,新增文件内容是否覆盖原 '.'yyyy-MM-dd-HH 每小时 有内容,false为覆盖

3_log4j

3_log4j

第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基础入门(超详细)

log4j2基础入门(超详细)

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及以上级别的⽇志。

log4j 1.x入门教程

log4j 1.x入门教程

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讲解

本章内容

log4j 装箱与拆箱 Java中的反射机制
本章目标

掌握log4j的配置及使用 了解Java中的ห้องสมุดไป่ตู้本数据类型与封装数据类型 理解Java自动装箱与拆箱的特性 掌握使用反射获取类的结构信息 掌握使用反射调用类中的方法
1.log4j
1.1 什么是日志
public class Demo { public static void main(String args[]){ try 要在控制台和文件中同时输 { 出异常信息?如何处理? int result = 4 / 0; }catch(Exception e) { System.out.println(e.getMessage()); } }
2.装箱和拆箱
2.1 基本数据类型与包装数据类型
基本数据类型 int char 包装数据类型 Integer Character
short
long float double boolean byte
Shor
Long Float Double Boolean Byte
2.2 自动装箱

自动装箱即基本数据类型被自动包装为包装类
Class类及其作用
import ng.reflect.Method; public class Demo { public static void main(String[] args) { try { Class stu = Class.forName(args[0]); //获取类中所有的方法 Method[] methods = stu.getMethods(); for(int i=0;i<methods.length;i++){ System.out.println(methods[i].getName()); } }catch(Exception e) { e.printStackTrace(); } } }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

封邮件 ,

(LoggingEvent)对象,

(LoggingEvent)对象,
• • • •
电子商务服务部 · CUC EBS
ConsoleAppender & FileAppender
ConsoleAppender选项

Threshold=WARN:指定日志消息的输出最低层次。 ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 Target=System.err:默认情况下是:System.out,指定输出控制台
• •
FileAppender选项

Threshold=WARN:指定日志消息的输出最低层次。 ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 File=mylog.txt:指定消息输出到mylog.txt文件。
• • •
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖 指定的文件内容。
• •
appenderName就是指定日志信息输出到哪个地方。您可 以同时指定多个输出目的地。
电子商务服务部 · CUC EBS
XML文件配置之Logger
示例:
<logger name="com.ailk" additivity="false"> <level value="info" /> <appender-ref ref="file" /> </logger>
文件),

电子商务服务部 · CUC EBS
Log4j - Appender

SMTPAppender 当特定的日志事件发生时,一般是指发生错误或者重大错误时,发送一 SocketAppender 给远程日志服务器(通常是网络套接字节点)发送日志事件 SocketHubAppender 给远程日志服务器群组(通常是网络套接字节点)发送日志事件 SyslogAppender给远程异步日志记录的后台精灵程序(daemon)发送消息, TelnetAppender 一个专用于向只读网络套接字发送消息的log4j appender 我们还可以实现 Appender 接口,创建以自己的方式进行日志输出的Appender 自定义Appender:CustomCatalogDailyRollingFileAppender
• • • •
%r: 输出自应用启动到输出该log信息耗费的毫秒数 %c: 输出日志信息所属的类目,通常就是所在类的全名 %t: 输出产生该日志事件的线程名
%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、 发生的线程,以及在代码中的行数。举例: Testlog4.main(TestLog4.java:10)
Log4j提供的appender有以下几种:
• • • •
org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的 org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
• •
MaxBackupIndex=2:指定可以产生的滚动文件的最大数。
电子商务服务部 · CUC EBS
配置日志信息的布局
yout = yout.class yout.option1 = value1 … yout.optionN = valueN 其中,Log4j提供的layout有以下几种: org.apache.log4j.HTMLLayout(以HTML表格形式布局), org.apache.log4j.PatternLayout(可以灵活地指定布局模式), org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符 串), org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别 等等信息)
电子商务服务部 · CUC EBS
Properties文件配置之Logger

语法:
log4j.rootLogger = [level],appenderName,appenderName, …
level:是日志记录的优先级,分别为OFF、FATAL、 ERROR、WARN、INFO、DEBUG、ALL或者您定义的级 别。Log4j建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。通过在这里定义的级 别,您可以控制到应用程序中相应级别的日志信息的开关。 比如在这里定义了INFO级别,则应用程序中所有DEBUG级 别的日志信息将不被打印出来。
电子商务服务部 · CUC EBS
XML配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "./log4j.dtd" > <log4j:configuration> <appender name="stdout" class="org.apache.log4j.ConsoleAppender"> <param name="Threshold" value="debug" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%5p %c{1}:%L - %m%n" /> </layout> </appender> <root> <level value="debug" /> <appender-ref ref="stdout" /> </root> </log4j:configuration>
电子商务服务部 · CUC EB用配置文件,而是在代码中配置 Log4j环境。但是,使用配置文件将使您的应用程序更加灵 活。 Log4j支持两种配置文件格式,一种是XML格式的文件,一 种是properties格式的文件。 Properties文件配置示例:
Append=false:默认值是true,即将消息增加到指定文件中,false指 默认值是 即将消息增加到指定文件中, 指 将消息覆盖指定的文件内容。 MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件 到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文 件。
电子商务服务部 · CUC EBS
DailyRollingFileAppender
DailyRollingFileAppender选项
• •
Threshold=WARN:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输 出。 File=mylog.log:指定消息输出到mylog.log文件。
• • •
name:logger名称,与在程序中的Logger.getLogger(…) name:logger名称,与在程序中的Logger.getLogger(…) 对应。 additivity: children-logger是否使用 父Logger的配置。 children-logger是否使用 Logger的 appender-ref:此项可以为多个;指定要输出的地方。
log4j.rootLogger=debug,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender yout=org.apache.log4j.PatternLayout yout.ConversionPattern=%5p %c{1}:%L - %m%n
电子商务服务部 · CUC EBS
Log4j - Appender
语法为(properties配置文件):
log4j.appender.appenderName = .of.appender.class log4j.appender.appenderName.option1 = value1 … log4j.appender.appenderName.optionN = valueN
Log4j
李明 201101
电子商务服务部 · CUC EBS
问题的提出
• •
log4j = Log for Java
在项目运行的过程之中,我们希望周期性地将项目运行过 程中的一些状况纪录在日志文件或者打印在控制台。 用户操作的错误信息 程序运行的过程 代码调试的打印
• • •
电子商务服务部 · CUC EBS
• •
Append=false:默认值是true,即将消息增加到指定文件中,false指将消 息覆盖指定的文件内容。

DatePattern=’.'yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。 当然也可以指定按月、周、天、时和分。即对应的格式如下: 1)’.'yyyy-MM: 每月 2)’.'yyyy-ww: 每周 3)’.'yyyy-MM-dd: 每天 4)’.'yyyy-MM-dd-a: 每天两次 5)’.'yyyy-MM-dd-HH: 每小时 6)’.'yyyy-MM-dd-HH-mm: 每分钟
相关文档
最新文档