log4j培训ppt
Log4j日志技术精品PPT课件
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 培训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课件
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
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
第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基础⼊门(超详细)⼀.导包 (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入门教程
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 装箱与拆箱 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(); } } }
log4j教程
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可以定义为日志添加器,可以指定将日志信息输出到哪里。
log4j演讲ppt
Loggers
介绍
Loggers 输出信息类别level 为 OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL等。 输出信息类别 、 、 、 、 、 、 等 log4j常用的优先级 常用的优先级FATAL>ERROR>WARN>INFO>DEBUG 常用的优先级 配置根Logger,其语法为: ,其语法为: 配置根 log4j.rootLogger = [ level ] , appenderName, appenderName, … 如果为log4j.rootLogger=WARN,则意味着只有WARN,ERROR,FATAL被输出,DEBUG,INFO将被屏蔽掉。 ,则意味着只有 被输出, 将被屏蔽掉。 如果为 被输出 将被屏蔽掉
Appenders
介绍
Appenders(输出源) Log4j允许日志请求被输出到多个输出源。用Log4j的话说,一个输出源被称做一个 允许日志请求被输出到多个输出源。 的话说, 允许日志请求被输出到多个输出源 的话说 一个输出源被称做一个Appender。 。 Appender包括 包括console(控制台), files(文件), GUI components(图形的组件), remote 包括 (控制台) (文件) (图形的组件) socket servers(socket服务), JMS(java信息服务), NT Event Loggers(NT的事件日志), and 服务) 信息服务) 的事件日志) ( 服务 ( 信息服务 ( 的事件日志 remote UNIX Syslog daemons(远程 的后台日志服务) (远程UNIX的后台日志服务)等。 的后台日志服务 同时,一个logger可以设置超过一个的 可以设置超过一个的appender。 同时,一个 可以设置超过一个的 。 log4j.appender.appender1=org.apache.log4j.FileAppender log4j.appender.appender2=org.apache.log4j.ConsoleAppender …… org.apache.log4j.ConsoleAppender(控制台) org.apache.log4j.FileAppender(文件) org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件) org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件) org.apache.log4j.WriterAppender(将日志讯息以串流格式发送到任意指定的地方) org.apache.log4j.JdbcAppender(将日志讯息保存到数据库中)
Log4j
Log4j 简介一. 概述在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
此外,通过Log4j其他语言接口,您可以在C、C+ +、.Net、PL/SQL 程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。
而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP 应用中。
二:log4j的基本配置说明Log4j提供两种方式的配置文件,XML文件和properties属性文件,下面我以properties格式的配置文件为例进行说明。
1:定义一个Logger。
在定义Logger的时指定该Logger的级别及输出目的地(即输出端Appender,可以多个)。
定义Logger的格式如下:log4j.rootLogger=loggerLevel, appenderName1, appenderName2, …. appenderNameN例:log4j.rootLogger=DEBUG, A1, A2, A3该Logger的日志输出级别为DEBUG( 日志级别还包括有:INFO, WARN, ERROR ),同时定义三个输出端Appender:A1,A2,A32:定义Appender的输出目的地。
定义一个Appender的输出目的地的格式如下:log4j.appender.appenderName = .of.appender.class log4j提供的输出端有:(前缀为org.apache.log4j.)ConsoleAppender:将日志信息输出到控制台FileAppender:将日志信息输出到一个文件WriterAppender:将日志信息以流格式发送到任意指定的地方JDBCAppender:通过JDBC把日志信息输出到数据库中(参考下面实例)DailyRollingFileAppender:将日志信息输出到一个文件,并且每天输出到一个新的日志文件中RollingFileAppender:将日志信息输出到一个文件,通过指定文件的的尺寸,当文件大小到达指定尺寸的时候会自动把文件改名(参考下面实例)3:定义Appender的布局模式。
Log4j日志操作 详解,详细讲解log4j的使用,和原理
详细讲解Java中log4j的使用方法发布时间:2007.07.31 08:09来源:赛迪网作者:dxaw1、Log4j是什么?Log4j可以帮助调试(有时候debug是发挥不了作用的)和分析,要下载和了解更详细的内容,还是访问其官方网站吧: /log4j 。
2、Log4j的概念Log4j中有三个主要的组件,它们分别是 Logger、Appender和Layout,Log4j 允许开发人员定义多个Logger,每个Logger拥有自己的名字,Logger之间通过名字来表明隶属关系。
有一个Logger称为Root,它永远存在,且不能通过名字检索或引用,可以通过Logger.getRootLogger()方法获得,其它Logger通过 Logger.getLogger(String name)方法。
Appender则是用来指明将所有的log信息存放到什么地方,Log4j中支持多种appender,如 console、files、GUI components、NT Event Loggers等,一个Logger可以拥有多个Appender,也就是你既可以将Log信息输出到屏幕,同时存储到一个文件中。
Layout的作用是控制Log信息的输出方式,也就是格式化输出的信息。
Log4j中将要输出的Log信息定义了5种级别,依次为DEBUG、INFO、WARN、ERROR和FATAL,当输出时,只有级别高过配置中规定的级别的信息才能真正的输出,这样就很方便的来配置不同情况下要输出的内容,而不需要更改代码,这点实在是方便啊。
3、Log4j的配置文件虽然可以不用配置文件,而在程序中实现配置,但这种方法在如今的系统开发中显然是不可取的,能采用配置文件的地方一定一定要用配置文件。
Log4j支持两种格式的配置文件:XML格式和Java的property格式,本人更喜欢后者,首先看一个简单的例子吧,如下:首先,是设置root,格式为 log4j.rootLogger=[level],appenderName, ...,其中level 就是设置需要输出信息的级别,后面是appender的输出的目的地,appenderName就是指定日志信息输出到哪个地方。
log4j
1Log4j本章要点本章主要讲解Log4j的内容,在现在的软件开发中,对日志的处理成为不可或缺的部分,其中Log4j是其中的最好的工具,并且我们后面章节的案例中就需要使用Java的日志处理。
本章通过若干具体例子讲解Log4j的核心概念和编程代码。
1.1Java日志处理在我们开发程序的过程中,经常为了排错的需要,增加很多的打印输出语句;一般就是使用System.out.println(“hello”)这样的语句。
这样的打印语句对于我们对程序的排错很有帮助,但是也很麻烦,因为有一些语句是临时增加的,我们需要在程序交付的时候,这些信息就不需要输出了,那我们还需要手工把这些打印语句删除或者注释掉。
于是为了方便编程人员类似的需求,出现的完成日志输出和记录的日志工具供我们使用。
在Java 平台的软件开发中,主要使用 Log4j或者Java Logging API作为日志处理的解决方案。
Java Logging API是Java SE中的API,但是Log4j提供的功能更多,使用上更加方便。
所以本章主要讲解Log4j的使用。
1.2Log4j的起源Log4j最早起源于IBM的Zurich 研究实验室(),经过无数的工作,更改和性能加强后,成为广受欢迎的Jakarta项目组底下的Java开源日志工具。
其官方网站为:/log4j/docs/。
Log4J使用Apache Software License协议,通过它的官方网站可以下载到最新的log4J全部的源代码、类文件和文档资料。
另外,log4j 已经被转换很多种开发语言的日志工具,如表1—1所示。
表1—1工具名称与支持的开发语言名称语言种类Log4j JavaLog4Cxx c++Log4Net .NetLog4Perl PerlLog4PHP PHP名称语言种类Log4PLSQL PLSQL1.3Log4j的安装可以通过/site/binindex.cgi网址下载它的安装程序,如图1—1所示,下载的是一个zip压缩文件,解压到硬盘的任意目录下。
深入浅出 Log4j----曹靖鹏
深入浅出Log4j编辑:曹靖鹏一. Log4j的作用?在开发阶段,Log4j用于发现程序的问题,排错。
在产品阶段,Log4j用于记录程序运行的状况。
与System.out.println的比较:经比较Log4j优于system.out.pringln。
二. Log4j的安装与下载1. 官方下载地址:/log4j/1.2/download.html2. 解压文件:核心包----log4j-1.2.15.jar 需导入工程配置文件--examples/sort1.properties(更名后-> log4j.properties)需导入工程三.例子1. 新建java工程,导入核心包log4j-1.2.15.jar2. 在src下,手写配置文件log4j.properties 用于对log4j日志的输出设置属性。
配置内容(每个配置都须对Logger, appender, layout设置值):log4j.rootLogger=debug, appender1log4j.appender.appender1=org.apache.log4j.ConsoleAppenderyout=org.apache.log4j.TTCCLayout图:3. 建HelloLog4j的类package com.v512.log4j;import org.apache.log4j.Logger;public class HelloLog4j {//传当前类HelloLog4j的对象,给Log4j的logger对象,用于对该类进行日志的记录。
private static Logger logger = Logger.getLogger(HelloLog4j.class);public static void main(String[] args) {// 记录信息.logger.debug("This is debug message.");("This is info message.");logger.error("This is error message.");}}建好运行,输出结果:[main] DEBUG com.v512.log4j.HelloLog4j - This is debug message.[main] INFO com.v512.log4j.HelloLog4j - This is info message.[main] ERROR com.v512.log4j.HelloLog4j - This is error message.四.例子讲解Log4j核心包含 Logger, Appender, Layout, 配置文件.Logger :分级别地完成日志信息的处理Appender :设置日志信息的去向Layout :设置日志信息的输出样式配置文件: log4j.properties或者 log4j.xml1.Logger输出信息的优先级别: All < TRACE < DEBUG < INFO < WARN < ERROR <FATAL < OFF在配置文件中设置的级别只有低于或等于类中记录信息的级别才能在输出结果中打印相应的信息。
Apache Log4J的应用技术及应用入门
public void info(Object message);
public void warn(Object message);
public void error(Object message);
public void fatal(Object message);
log4j允许程序员定义多个记录器,每个记录器有自己的 名字。 有一个记录器叫根记录器
它永远存在并且是类别等级的起始 且不能通过名字检索或引用 可以通过Logger.getRootLogger()方法取得它 而一般记录器通过Logger.getLogger(String name)方法。
通过控制配置文件,我们还可以灵活地修改日志信息的格 式,输出目的地等等方面
而单纯依靠System.out.println语句,显然需要做更多的 工作。
(6)为什么要使用Log4j
System.out.println一个缺点 就是当项目切入正式运行后,不希望这些日志输出到容 器的控制台上。 因为这样还会降低系统性能 但是如果手工逐个到程序中删除,又将为以后扩展维护 带来不便。 Log4J的方便性:通过修改配置文件,就可以决定log信息输 出到何处 这样,在系统开发阶段可以打印详细的log信息以跟踪系 统运行情况
日志信息的输出格式Layout(布局)
它控制了日志信息的显示内容的格式。
说明:
这里可简单理解为日志类别,日志要输出的地方和日志以何种形式 输出。 综合使用这三个组件可以轻松的记录信息的类型和级别,并可以在 运行时控制日志输出的样式和位置。
(2)记录器(对记录器来说可不关心log数据存放的事, 而这些应该是属于存放器的事)
Javalog4j教程
Javalog4j教程Java log4j教程一:Log4j入门简介学习Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。
而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。
二、入门实例1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个工程最终目录如下2、src同级创建并设置log4j.properties### 设置###log4j.rootLogger = debug,stdout,D,E### 输出信息到控制抬 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.outyout = org.apache.log4j.PatternLayoutyout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n ### 输出DEBUG 级别以上的日志到=E://logs/error.log ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = E://logs/log.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = DEBUGyout = org.apache.log4j.PatternLayoutyout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### 输出ERROR 级别以上的日志到=E://logs/error.log ###log4j.appender.E = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File =E://logs/error.loglog4j.appender.E.Append = truelog4j.appender.E.Threshold = ERRORyout = org.apache.log4j.PatternLayoutyout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n3、设置日志内容package com.mucfc;import org.apache.log4j.Logger;/** *@author linbingwen *@2015年5月18日9:14:21 */public class Test { private static Logger logger = Logger.getLogger(T est.class); /** * @param args */ public static void main(String[] args) { // System.out.println("This is println message."); // 记录debug级别的信息 logger.debug("This is debug message."); // 记录info级别的信息 ("This is info message."); // 记录error级别的信息 logger.error("This is error message."); } }4、输出结果(1)首先是控制台的信息(2)再来看输出的文件内容如下,发现已按照要求输出到对应的文档中去了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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: 每分钟