Log4j 基本使用方法_第1页
Log4j 基本使用方法_第2页
Log4j 基本使用方法_第3页
Log4j 基本使用方法_第4页
Log4j 基本使用方法_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Log4j 基本使用方法Log4j 由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。一、定义配置文件其实您也可以完全不使用配置文件,而是在代码中配置Log4j 环境。但是,使用配置文件将使您的应用程序更加灵活。Log4j 支持两种配置文件格式,一种是XML 格式的文件,一种是Java 特性文件(键=值)。下面我们介绍使用Java特性文件做为配置文件的方法:1.配置

2、根Logger,其语法为:log4j.rootLogger = level , appenderName, appenderName, 其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL 或者您定义的级别。Log4j 建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO 级别,则应用程序中所有DEBUG 级别的日志信息将不被打印出来。 appenderName 就是指定日志信息输出到哪个地方。您可以同时指定多

3、个输出目的地。2.配置日志信息输出目的地Appender,其语法为:log4j.appender.appenderName = .of.appender.classlog4j.appender.appenderName.option1 = value1log4j.appender.appenderName.option = valueN其中,Log4j 提供的appender有以下几种:org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(文件),org.apache.lo

4、g4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)3.配置日志信息的格式(布局),其语法为:log4j.appender.appenderName.layout=.of.layout.classlog4j.appender.appenderName.layout.option1 = value1log4

5、j.appender.appenderName.layout.option = valueN其中,Log4j 提供的layout有以下几种:org.apache.log4j.HTMLLayout(以HTML 表格形式布局),org.apache.log4j.PatternLayout(可以灵活地指定布局模式),org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)Log4J 采用类似C 语言中的printf 函数的打印格式格式化日志信息,打印参数如下:%m 输

6、出代码中指定的消息%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL%r 输出自应用启动到输出该log信息耗费的毫秒数%c 输出所属的类目,通常就是所在类的全名%t 输出产生该日志事件的线程名%n 输出一个回车换行符,Windows平台为“rn”,Unix 平台为“n”%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%dyyy MMM dd HH:mm:ss,SSS,输出类似:2002 年10 月18 日22:10:28,921%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.mai

7、n(TestLog4.java:10)二、在代码中使用Log4j1.得到记录器使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:public static Logger getLogger( String name)通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name 一般取本类的名字,比如:static Logger logger=Logger.getLogger ( ServerWithLog4j.class.getName () )2.读取配置文件当获得了日志记录器之后,第二步将配置Log4j 环境,其语法为:BasicConf

8、igurator.configure (): 自动快速地使用缺省Log4j环境。PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。DOMConfigurator.configure ( String filename ) :读取XML 形式的配置文件。3.插入记录信息(格式化日志信息)当上两个必要步骤执行完毕,您就可以轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:Logger.debug ( Object message ) ;L ( O

9、bject message ) ;Logger.warn ( Object message ) ;Logger.error ( Object message ) ;log4j使用示例log4j使用示例-by blues()PART 1 介绍log4j的好处在于:1.通过修改配置文件,就可以决定log信息输出到何处(console,文件,.),是否输出。这样,在系统开发阶段可以打印详细的log信息以跟踪系统运行情况,而在系统稳定后可以关闭log 输出,从而在能跟踪系统运行情况的同时,又减少了垃圾代码(System.out.println(.)等)。2.使用l

10、og4j,需要整个系统有一个统一的log机制,有利于系统的规划。log4j的使用本身很简单。但合理地规划一个系统的统一log机制需要周全的考虑。其他关于log4j 的信息参看log4j自带的文档。PART II 配置文件详细解释先看一个配置文件的例子:1.配置文件的例子log4j.rootLogger=DEBUG#将DAO层log记录到DAOLog,allLog中log4j.logger.DAO=DEBUG,A2,A4#将逻辑层log记录到BusinessLog,allLog 中log4j.logger.Businesslog=DEBUG,A3,A4#A1-打印到屏幕上log4j.append

11、er.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%-5p %t %37c %3x - %m%n#A2-打印到文件DAOLog 中-专门为DAO层服务log4j.appender.A2=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.A2.file=DAOLoglog4j.appender.A2.DatePatt

12、ern=.yyyy-MM-ddlog4j.appender.A2.layout=org.apache.log4j.PatternLayoutlog4j.appender.A2.layout.ConversionPattern=%-5p %dyyyy-MM-dd HH:mm:ss,SSS method:%l%n%m%n#A3-打印到文件BusinessLog 中-专门记录逻辑处理层服务log信息log4j.appender.A3=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.A3.file=BusinessLoglog4j.app

13、ender.A3.DatePattern=.yyyy-MM-ddlog4j.appender.A3.layout=org.apache.log4j.PatternLayoutlog4j.appender.A3.layout.ConversionPattern=%-5p %dyyyy-MM-dd HH:mm:ss,SSS method:%l%n%m%n#A4-打印到文件alllog中-记录所有log 信息log4j.appender.A4=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.A4.file=allloglog4j.app

14、ender.A4.DatePattern=.yyyy-MM-ddlog4j.appender.A4.layout=org.apache.log4j.PatternLayoutlog4j.appender.A4.layout.ConversionPattern=%-5p %dyyyy-MM-dd HH:mm:ss,SSS method:%l%n%m%n2.Appender的使用一个Appender 代表log信息要写向的一个地方。log4j可使用的Appender 有很多类型,这里只考虑3种:ConsoleAppender,FileAppender,DailyRollFileAppender2.

15、1 ConsoleAppender如果使用ConsoleAppender,那么log信息将写到Console。就是直接把信息打印到System.out 上了。2.2 FileAppender使用FileAppender,那么log信息将写到指定的文件中。这应该是比较经常使用到的情况。相应地,在配置文件中应该指定log 输出的文件名。如下配置指定了log文件名为demo.txtlog4j.appender.A2.File=demo.txt注意将A2 替换为具体配置中Appender 的别名。2.3 DailyRollingAppender使用FileAppender可以将log信息输出到文件中,

16、但是如果文件太大了读起来就不方便了。这时就可以使用DailyRollingAppender。DailyRollingAppender 可以把Log信息输出到按照日期来区分的文件中。如下配置文件就会每天产生一个log文件,每个log文件只记录当天的log信息:log4j.appender.A2=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.A2.file=demolog4j.appender.A2.DatePattern=.yyyy-MM-ddlog4j.appender.A2.layout=org.apache.log4j.Pa

17、tternLayoutlog4j.appender.A2.layout.ConversionPattern=%m%n3.Layout的配置Layout 指定了log 信息输出的样式。详细信息请查看PatternLayout 的javadoc。例子1:显示日期和log信息log4j.appender.A2.layout=org.apache.log4j.PatternLayoutlog4j.appender.A2.layout.ConversionPattern=%dyyyy-MM-dd HH:mm:ss,SSS %m%n打印的信息是:2002-11-12 11:49:42,866 SELECT

18、 * FROM Role WHERE 1=1 order by createDate desc例子2:显示日期,log 发生地方和log信息log4j.appender.A2.layout=org.apache.log4j.PatternLayoutlog4j.appender.A2.layout.ConversionPattern=%dyyyy-MM-dd HH:mm:ss,SSS %l # %m%n2002-11-12 11:51:46,313 .unet.weboa.system.dao.RoleDAO.select(RoleDAO.java:409) # SELECT *

19、FROM Role WHERE 1=1 order by createDate desc例子3:显示log级别,时间,调用方法,log信息log4j.appender.A2.layout=org.apache.log4j.PatternLayoutlog4j.appender.A2.layout.ConversionPattern=%-5p %dyyyy-MM-dd HH:mm:ss,SSS method:%l%n%m%nlog信息:DEBUG 2002-11-12 12:00:57,376 method:.unet.weboa.system.dao.RoleDAO.select(

20、RoleDAO.java:409)SELECT * FROM Role WHERE 1=1 order by createDate descPART 3 log4j 的使用log4j使用步骤有3个:3.1.根据配置文件初始化log4j配置文件如PART 2所叙述。现在讲的是如何在程序中配置log4j。log4j可以使用3中配置器来初始化:BasicConfigurator ,DOMConfigurator ,PropertyConfigurator这里用的是PropertyConfigurator。使用PropertyConfigurator 适用于所有的系统。如下的语句PropertyCon

21、figurator.configure(perties);就以perties 为配置文件初始化好了log4j环境。注意一点:这个语句只需要在系统启动的时候执行一次。例如:在unet webOA项目中可以这么用:在ActionServlet 的init()方法中调用一次。public class ActionServlet extends HttpServlet./* Initialize global variables*/public void init() throws ServletException / 初始化Action 资源tryinitLog4

22、j();.catch(IOException e)throw new ServletException(Load ActionRes is Error);.protected void initLog4j()PropertyConfigurator.configure(perties);./end class ActionServlet3.2 在需要使用log4j 的地方获取Logger 实例如下是RoleDAO 类中的使用例子:static Logger log = Logger.getLogger(DAO);注意这里使用DAO标识符,那么对应的在配置文件中对应的配置信息如

23、下:#定义DAO Loggerlog4j.logger.DAO=DEBUG,A2#设置Appender A2的属性log4j.appender.A2=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.A2.file=demolog4j.appender.A2.DatePattern=.yyyy-MM-ddlog4j.appender.A2.layout=org.apache.log4j.PatternLayoutlog4j.appender.A2.layout.ConversionPattern=%-5p %dyyyy-MM-dd

24、HH:mm:ss %l%n%m%npublic class RoleDAO extends BaseDBObject.static Logger log = Logger.getLogger(DAO);.public BeanCollection selectAll() throws SQLExceptionStringBuffer sql = new StringBuffer(SQLBUF_LEN);sql.append(SELECT * FROM + tableName + order by roldId);/System.out.println(sql.toString();log.de

25、bug(sql);.3.3 使用Logger对象的debug,info,fatal.方法log.debug(it is the debug info);附件1:log4j的一个bug当这样使用时,DailyRollingFileAppender不能正确使用:public Class RoleDAO()static Logger log = Logger.getLogger(DAO);/在每一次new RoleDAO 对象的时候都执行一次configure()操作public RoleDAO(TransactionManager transMgr) throws SQLException.Pro

26、pertyConfigurator.configure(perties);.public void select()./使用log4j 进行log记录log.debug(.);.怎么解决:在系统启动时执行一次PropertyConfigurator.configure(perties);之后就不再执行。log4j 使用进阶二 动态配置log4j1 配置外部配置文件来配置的基本步骤1.1 一个运用配置文件的实例Log4j 之所以能成功的原因之一是它的灵活性。但如果只是简单的调用BasicConfigurator.configure()来进行配置工作,那么所有的

27、配置都是在函数中写死的,以后修改配置就要修改原代码,这就不能体现出log4j 的灵活性了,所以基本上不会通过BasicConfigurator.configure()来进行配置工作的。为了增加软件的灵活性,最常用的做法就是使用配置文件,如web.xml 之于J2EE,struts-config.xml 之于struts 一样,log4j 也提供了让我们把配置信息从程序转移到配置文件中的方法。Log4j 提供了两种方式的配置文件:XML 文件和Java 的property 配置文件。通过把配置信息转移到外部文件中,当我们要修改配置信息时,就可以直接修改配置文件而不用去修改代码了,下面,我们就来完

28、成一个通过配置文件来实现log4j的实例。例2-a:package TestLog4j;import org.apache.log4j.Logger;import org.apache.log4j.BasicConfigurator;import org.apache.log4j.PropertyConfigurator;import org.apache.log4j.Priority; public class TestLog4jstatic Logger logger = Logger.getLogger(TestLog4j.class.getName();public TestLog4j

29、()public static void main(String args)/通过BasicConfigurator 类来初始化/BasicConfigurator.configure();/(1)通过配置文件来初始化PropertyConfigurator.configure(F:perties);logger.debug(Start of the main() in TestLog4j); /代码(2)(Just testing a log message with priority set to INFO);logger.warn(J

30、ust testing a log message with priority set to WARN);logger.error(Just testing a log message with priority set to ERROR);logger.fatal(Just testing a log message with priority set to FATAL);logger.log(Priority.WARN, Testing a log message use a alternate form);logger.debug(TestLog4j.class.getName(); /

31、代码(2)在这个例子中,我们用PropertyConfigurator.configure(F:perties)代替BasicConfigurator.configure()进行配置。PropertyConfigurator.configure()函数的参数可以是一个properties 文件所在路径的String对象,可以是一个properties文件所在路径的URL对象,也可以是一个properties 对象。通过PropertyConfigurator.configure()可以通过指定的properties 文件来配置信息。如果要用XML 文件进行信息配

32、置,可以在代码中调用DOMConfigurator()函数来进行配置工作。在这里,我们只以properties 文件来完成例子。接着,我们来看一下perties文件中都有些什么东西:例2-b:log4j.rootLogger = DEBUG, A1log4j.appender.A1 = org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout = org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern = %-4r %t %-5p

33、%c %x - %m%n运行这个实例,运行结果为0 main DEBUG TestLog4j.TestLog4j - Start of the main() in TestLog4j20 main INFO TestLog4j.TestLog4j - Just testing a log message with priority set to INFO20 main WARN TestLog4j.TestLog4j - Just testing a log message with priority set to WARN20 main ERROR TestLog4j.TestLog4j -

34、 Just testing a log message with priority set to ERROR20 main FATAL TestLog4j.TestLog4j - Just testing a log message with priority set to FATAL180 main WARN TestLog4j.TestLog4j - Testing a log message use a alternateform180 main DEBUG TestLog4j.TestLog4j - TestLog4j.TestLog4j下面,我们分析一下这个配置文件。1) 由于每一个

35、Logger 对旬都有一个级别,文件的第一行就是定义了一个Logger 及其级别。在这里定义了一个根记录器(root logger),这涉及到记录器的层次问题,在些暂时不深入讨论,在后面的章节再进行讨论。2) 第二行定义了一个名为A1 的输出流,这个流就是控制台,所以通过Logger 对象打印的信息会在控制台输出。3) 第三行定义了打印信息的布局。在这里我们用PatternLayout作为此记录器的布局,PatternLayout允许你以灵活的格式来打印信息。4) 第四行指定的打印信息的具体格式,从结果可知,这个实例的打印格式为:当前打印语句所使用的时间 日志所在的线程 打印的级别 当前日志所

36、在的类的全名 日志信息。现在我们来修改一下这个记录器的级别,把第一行的DEBUG 改为INFO,再运行程序,结果将变为:0 main INFO TestLog4j.TestLog4j - Just testing a log message with priority set to INFO10 main WARN TestLog4j.TestLog4j - Just testing a log message with priority set to WARN10 main ERROR TestLog4j.TestLog4j - Just testing a log message with

37、 priority set to ERROR10 main FATAL TestLog4j.TestLog4j - Just testing a log message with priority set to FATAL10 main WARN TestLog4j.TestLog4j - Testing a log message use a alternateform由于这个Logger的级别变为INFO,而代码(2)是调用debug()函数来输出日志信息时只能当记录器级别为DEBUG 时才输出信息,所以代码(2)将不输出信息。1.2 实例原理1.2.1 初始化配置信息如果要通过JAVA

38、的properties 文件来配置信息,那么在代码中就要通过PropertyConfigurator.configure()函数从properties 文件中加载配置信息,这个函数有三种参数形式:一个properties 文件所在路径的String 对象,可以是一个properties 文件所在路径的URL 对象,也可以是一个properties 对象。如果要用XML 文件来配置信息,则可用类型的DOMConfigurator()函数来从一个XML 文件中加载配置信息。1.2.2 输出端Appender在上面的例子中,我们都是简单的把日志信息输出到控制台中。其实在log4j中还可以把日志信息输

39、出到其它的输出端,对于同一个日志信息,我们还可以让它同时输出到多个输出端中,如同时在控制台和文件中进行打印。一个输出端就是一个appender。要在配置文件中定义一个appender 有三步:1) 在定义一个记录器的同时定义出该记录器的输出端appender。在例2 的配置文件的第一句log4j.rootLogger = DEBUG, A1 中,我们定义了一个根记录器,它的级别为DEBUG,它有一个appender名为A1。定义根记录器的格式为log4j.rootLogger = level , appendName1, appendName2, appendNameN。同一个记录器可有多个输

40、出端。2) 定义appender 的输出目的地。定义一个appender 的输出目的地的格式为log4j.appender.appenderName = .of.appender.class。log4j 提供了以下几种常用的输出目的地:org.apache.log4j.ConsoleAppender,将日志信息输出到控制台org.apache.log4j.FileAppender,将日志信息输出到一个文件org.apache.log4j.DailyRollingFileAppender,将日志信息输出到一个,并且每天输出到一个新的日志文件org.apac

41、he.log4j.RollingFileAppender,将日志信息输出到一个文件,通过指定文件的的尺寸,当文件大小到达指定尺寸的时候会自动把文件改名,如名为example.log 的文件会改名为example.log.1,同时产生一个新的example.log 文件。如果新的文件再次达到指定尺寸,又会自动把文件改名为example.log.2,同时产生一个example.log文件。依此类推,直到example.log. MaxBackupIndex,MaxBackupIndex的值可在配置文件中定义。org.apache.log4j.WriterAppender,将日志信息以流格式发送到任

42、意指定的地方。org.apache.log4j.jdbc.JDBCAppender,通过JDBC把日志信息输出到数据库中。在例2 中,log4j.appender.A1 = org.apache.log4j.ConsoleAppender 定义了名为A1的appender的输出目的地为控制台,所以日志信息将输出到控制台。3) 定义与所选的输出目的地相关的参数,定义格式为:log4j.appender.appenderName.optionName1 = value1log4j.appender.appenderName.optionNameN = valueN其中一个最常用的参数layout

43、将在下面介绍。1.2.3 输出格式(布局)layout通过appender可以控制输出的目的地,而如果要控制输出的格式,就可通过log4j的layout 组件来实现。通过配置文件定义一个appender的输出格式,也通常需要两个步骤:1) 定义appender 的布局模式。定义一个appender 的布局模式的格式为log4j.appender.appenderName.layout = .of.layout.class。Log4j 提供的布局模式有以下几种:? org.apache.log4j.HTMLLayout,以HTML 表格形式布局? org.

44、apache.log4j.PatternLayout,可以灵活地指定布局模式? org.apache.log4j.SimpleLayout,包含日志信息的级别和信息字符串在例2 中log4j.appender.A1.layout = org.apache.log4j.PatternLayout 定义了名为A1的appender的布局模式为PatternLayout。2) 定义与所选的布局模式相关的设置信息,定义格式为:log4j.appender.appenderName.layout.optionName1 = value1log4j.appender.appenderName.layout

45、.optionNameN = valueN选择了不同的布局模式可能会有不同的设置信息。实例2 所选的布局模式PatternLayout 的一个PatternLayout为ConversionPattern ,通过定义这个PatternLayout的值,我们可以指定输出信息的输出格式。在例2 的配置文件中的定义如下log4j.appender.A1.layout.ConversionPattern = %-4r %t %-5p %c %x - %m%n。在下面,我们将介绍布局模式PatternLayout的参数ConversionPattern的各个值代表的含义。1.2.4 Conversion

46、Pattern 参数的格式含义格式名 含义%c 输出日志信息所属的类的全名%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%dyyy-MM-dd HH:mm:ss ,输出类似:2002-10-18- 22:10:28%f 输出日志信息所属的类的类名%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行%m 输出代码中指定的信息,如log(message)中的message%n 输出一个回车换行符,Windows平台_为“rn”,Unix平台为“n”%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用de

47、bug()输出的,则为DEBUG,依此类推%r 输出自应用启动到输出该日志信息所耗费的毫秒数%t 输出产生该日志事件的线程名1.3 定义多个输出目的地的实例从上面的实例原理中我们已经知道,同一个日志信息可以同时输出到多个输出目的地,在这个例子中,我们将实现一个把日志信息同时输出到控制器、一个文件中的实例和数据库中。这个实例的Java 代码我们沿用例2 中的代码,我们只需修改配置文件即可。这也体现了log4j 的灵活性。例3-a:create table log4j(logID int primary key identity,message varchar(1024),priority var

48、char(10),milliseconds int,category varchar(256),thread varchar(100),NDC varchar(256),createDate datetime,location varchar(256),caller varchar(100),method varchar(100),filename varchar(100),line int)例3-b:#1 定义了两个输出端log4j.rootLogger = INFO, A1, A2,A3#2 定义A1输出到控制器log4j.appender.A1 = org.apache.log4j.Co

49、nsoleAppender#3 定义A1的布局模式为PatternLayoutlog4j.appender.A1.layout = org.apache.log4j.PatternLayout#4 定义A1的输出格式log4j.appender.A1.layout.ConversionPattern = %-4r %t %-5p %c - %m%n#5 定义A2输出到文件log4j.appender.A2 = org.apache.log4j.RollingFileAppender#6 定义A2要输出到哪一个文件log4j.appender.A2.File = F:nepalonclasses

50、example3.log#7 定义A2的输出文件的最大长度log4j.appender.A2.MaxFileSize = 1KB#8 定义A2的备份文件数log4j.appender.A2.MaxBackupIndex = 3#9 定义A2的布局模式为PatternLayoutlog4j.appender.A2.layout = org.apache.log4j.PatternLayout#10 定义A2的输出格式log4j.appender.A2.layout.ConversionPattern = %dyyyy-MM-dd hh:mm:ss:%p %t%c - %m%n#11区 定义A3输

51、出到数据库log4j.appender.A3 = org.apache.log4j.jdbc.JDBCAppenderlog4j.appender.A3.BufferSize = 40log4j.appender.A3.Driver = com.microsoft.jdbc.sqlserver.SQLServerDriverlog4j.appender.A3.URL = jdbc:microsoft:sqlserver:/:1433;DatabaseName=nepalonlog4j.appender.A3.User = salog4j.appender.A3.Passwor

52、d =log4j.appender.A3.layout = org.apache.log4j.PatternLayoutlog4j.appender.A3.layout.ConversionPattern = INSERT INTO log4j (createDate,thread, priority, category, message) values(getdate(), %t, %-5p, %c,%m)配置文件中的6、7、8 行显示了输出端为RollingFileAppender 的特有参数及其运用的方法。11 区显示了输出端为JDBCAppender 的特有参数及其运用方法。在这着重讲

53、解一下6、7、8 行的作用。6 行指定日志信息输出到哪个文件,7 行指定日志文件的最大长度,最后要详细介绍8 行。第8行的参数是设置备份文件的个数的参数,在这里我们设置为3,表示最多有3个备份文件,具体作用为:1) 当example3.log文件的大小超过K时,就把文件改名为example3.log.1,同时生成一个新的example3.log文件2) 当example3.log 文件的大小再次超过1K,又把文件改名为example3.log.1。但由于此时example3.log.1 已存在,则先把example3.log.1 更名为example3.log.2,再把example3.log

54、文件改名为example3.log.13) 同理,当example3.log 文件的大小再次超过1K,先把example3.log.2 文件更名为example3.log.3,把example3.log.1 文件更名为example3.log.2,再把example3.log文件改名为example3.log.14) 当example3.log文件的大小再次超过1K,先把example3.log.2 文件更名为example3.log.3,旧的example3.log.3 文件将被覆盖;把example3.log.1 文件更名为example3.log.2,旧的example3.log.2 文

55、件被覆盖;最后把example3.log 文件改名为example3.log.1并覆盖掉旧的example3.log.1文件。运行结果将分为两部分在控制器中:0 main INFO TestLog4j.TestLog4j - Just testing a log message with priority set to INFO11 main WARN TestLog4j.TestLog4j - Just testing a log message with priority set to WARN21 main ERROR TestLog4j.TestLog4j - Just testing

56、 a log message with priority set to ERROR 21 main FATAL TestLog4j.TestLog4j - Just testing a log message with priority set to FATAL21 main WARN TestLog4j.TestLog4j - Testing a log message use a alternateform在文件example3.log 中:2003-12-18 04:23:02:INFO main TestLog4j.TestLog4j - Just testing a log message with priority set to INFO2003-12-18 04:23:02:WARN main TestLog4j.TestLog4j - Just testing a log message with priority set to WARN2003-12-18 04:23:02:ERROR main TestLog4j.TestLog4j -

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论