`
alfred.w
  • 浏览: 89815 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Log4J使用完全手册

    博客分类:
  • java
阅读更多

Log4J使用完全手册 1
2009年02月15日 14:04

Log4JApache的一个开放源代码项目(http://logging.apache.org/log4j/docs/),它是一个日志操作包。通过使用Log4J,可以指定日志信息输出的目的地,控制每一条日志的输出格式,定义日志信息的级别。所有这些功能通过一个配置文件灵活进行配置。

一、LOG4J组成

    LOG4J主要由三大组件组成:
    . Logger: 
决定什么日志信息应该被输出、什么日志信息应该被忽略;
    . Appender: 
指定日志信息应该输出到什么地方这些地方可以是控制台、文件、网络设备;
    . Layout: 
指定日志信息的输出格式;

    一个Logger可以有多个Appender,也就是说日志信息可以同时输出到多个设备上,每个Appender对应
    
一种Layout(示例见下图)

              ↗ Appender1 → Layout
     
     
    Logger
     
 
              ↘ Appender2 → Layout


二、Logger组件

    1. Logger组件提供的方法:

       Logger组件是LOG4J的核心组件,它代表了Log4J的日志记录器,它能够对日志信息进行分类筛选。它由org.apache.log4j.Logger类实现,提供了如下方法:

java 代码

1. package org.apache.log4j;   

2.   

3. public class Logger {   

4.   

5.             // Creation & retrieval methods:   

6.             public static Logger getRootLogger();   

7.             public static Logger getLogger(String name);   

8.   

9.             // printing methods:   

10.            public void debug(Object message);   

11.            public void info(Object message);   

12.            public void warn(Object message);   

13.            public void error(Object message);   

14.            public void fatal(Object message);   

15.      

16.            // generic printing method:   

17.            public void log(Priority p, Object message);   

18.}   

    2. 在配置文件中配置Logger组件

       可在Log4J配置文件中配置自己的Logger组件,示例:

       log4j.logger.myLogger=WARN

       以上代码定义了一个Logger组件,名称为myLogger,日志级别为WARN


    3. 
日志级别种类:

       一共有五种,级别由高到低依次是:fatalerrorwarninfodebug。获得Logger实例后,我们可调用以下方法之一输出日志信息:

       public void debug(Object message);   //输出debug级别的日志信息;
       public void info(Object message);   //
输出info级别的日志信息;
       public void warn(Object message);    //
输出warn级别的日志信息;
       public void error(Object message); //
输出error级别的日志信息;
       public void fatal(Object message); //
输出fatal级别的日志信息;
       public void log(Priority p, Object message);//
输出参数Priority指定级别的日志信息;

       以上方法只有当它的级别大于或等于Logger组件配置的日志级别时才调用。以前面我们配置的myLogger为例,它的日志级别为WARN, 那么在程序中,它的warn()error()fatal()方法会被执行。对于log()方法,只有当它的参数Priority指定的日志级别大于或等于WARN时,它才会被执行。

    4. 为什么需要对日志进行分级?
    
       
在写程序的时候,为了调试程序,我们会在很多出错的地方输出大量的日志信息。当程序调试完,不需要这些信息时,将程序中这些输出日志信息代码删除吗?这样费时费力,对于大型程序几乎不可行。通过对日志分级,假如不想输出WARN级别的日志信息,则Logger组件的级别调高即可,省时省心。

    5. Logger组件的继承性

       Log4J提供了一个root Logger,它是所有Logger组件的祖先”,它永远存在,且不能通过名字检索或引用,通过Logger.getRootLogger()方法取得它。配置root Logger代码:

       log4j.rootLogger=INFO,console

       可在配置文件中方便地配置存在继承关系的Logger组件,凡是在符号“.”后面的组件都会成为在符号“.”前面的Logger组件的子类。例如:

       log4j.apache.myLogger=WARN
       log4j.apache.myLogger.mySonLogger=,file

       以上代码中, mySonLoggermyLogger的子类Logger组件。Logger组件的继承关系:
       . 
如果子类Logger组件没有定义日志级别,则将继承父类的日志级别;
       . 
如果子类Logger组件定义了日志级别,就不会继承父类的日志级别
;
       . 
黙认情况下,子类Logger组件会继承父类所有的Appender,把它们加入到自己的
Appener;
       . 
如果把子类Logger组件的additivity标志设为false,那么它就不会继承父类Appenderadditivity标志 默认值为false

       以上配置的三个Logger继承关系示例如图:
     
       root Logger: 
日志级别=INFO appender清单=console
                            ↑
       myLogger: 
日志级别=WARN appender清单
=null
                            ↑
       mySonLogger: 
日志级别=null appender清单=file

       这三个Logger组件实际日志级别和Appender如下表:

       Logger组件          日志级别          Appender清单
       root Logger         INFO              console
       myLogger            WARN              console(
继承)
       mySonLogger         WARN(
继承)        fileconsole(继承)

   
三、Appender组件

    Appender组件决定将日志信息输出到什么地方。支持以下目的地:
    . 
控制台(Console);
    . 
文件
(File);
    . GUI
组件
(GUI component);
    . 
套接口服务器
(Remote socket server);
    . NT
的事件记录器
(NT Event Logger);
    . UNIX Syslog
守护进程(Remote UNIX Syslog daemon);

    一个Logger可同时对应多个Appender,示例:myLogger配置二个Appender: 一个file, 一个是console

    log4j.logger.myAppender=WARN,file,console

    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=log.txt

    log4j.apender.console=org.apache.log4j.ConsoleAppender

四、Layout组件

    Layout组件决定日志输出格式有以下几种类型
    . org.apache.log4j.HTMLLayout(
HTML表格形式布局);
    . org.apache.log4j.PatternLayout(
可以灵活地指定布局模式
);
    . org.apache.log4j.SimpleLayout(
包含日志信息的级别和信息字符串
);
    . org.apache.log4j.TTCCLayout(
包含日志产生的时间、线程和类别等信息
);
    
    
为名称为consoleAppender配置SimpleLayout代码如下

    log4j.appender.console.layout=org.apache.log4j.SimpleLayout

    输出日志格式如下:

    WARN - This is a log message from the myLogger
    
    
为名称为fileAppender配置PatternLayout,代码如下:

    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%t %p - %m%n

    输出日志格式如下:

    THREAD-1 WARN - This is a log message from the myLogger

    PatternLayout让开发者依照ConversionPattern定义输出格式。ConversionPattern中一些指定日志内容和格式的预定义符号说明如下:

    符号         描述
    %r           
自程序开始后消耗的毫秒数
    %t           
表示日志记录请求生成的线程
    %p           
表示日专语句的优先级
    %r           
与日志请求相关的类别名称
    %c           
日志信息所在的类名
    %m%n         
表示日志信息的内容

分享到:
评论

相关推荐

    log4j使用完全手册.rar

    log4j使用完全手册 很好啊!也很强!在做JAVA EE项目项目中日志是必须写的!所以LOG4J是我们最佳的选择!

    log4j使用完全手册

    收录log4j一般使用方法,具有很高参考价值

    Log4J完全使用手册

    Log4J使用手册,包括日常用到的Log4J使用方法。

    【转】log4j使用完全手册

    log4j.properties 博文链接:https://aindf0128.iteye.com/blog/785582

    log4j完全参考手册

    log4j概况介绍 log4j的架构概览 log4j的配置 log4j应用实例

    Log4j完全手册WORD版

    以log4j complete manual的pdf版本为模板转换的word文档,格式基本相同,没有太大的出入。此版本主要方便大家用软件取词。

    log4j完全手册

    配置内容涵盖面广,参数讲解详细。

    The Complete log4j Manual

    学习log4j的完全手册

    书本源码--JavaWeb 实战开发完全学习手册

    Java Web实战开发完全学习手册》共分15章,全面系统地介绍了JavaWeb相关的知识,主要包括JavaWeb开发基础、HTML与CSS网页开发基础、JavaScript基础、JSP基本语法、JSP隐式对象、JDBC技术应用、Servlet技术应用、...

    java学习阶段所有的API帮助文档

    JspSmartUpload,JSP基础语法帮助,JUnit4.1_帮助文档,log4j 1.2.14,Microsoft Jet SQL参考,MySQL 5.1参考手册,MySQL使用,PostgreSQL 8.0.0 中文文档,Servlet2.3-帮助文档,Spring Security安全权限管理手册,...

    微软活动目录管理管理简明手册

    有关DNS服务器的配置,读者可以参考《电脑报2001年合订本》下册附录中《ⅡS 5.0网络建站完全手册》一文。 4 ^; U6 a4 c4 _+ F. @& i* y2 M 9 X, c" R4 J. `7 w: z(二)安装活动目录 3 |" ]' a: f6 V# D$ W运行活动...

    计算机应用技术(实用手册)

    4.格式之间的转换,使用winavi进行转换 32 5.常用的快捷键,使用快捷可以帮助我节约时间。 33 6.开机常按F8可以进入安全模式或是带DOS命令的安全模式。 33 第六章GHOST的备份与恢复 34 第七章 综合应用 44 一....

    阿里巴巴编码规范 基础技能认证 考题分析(考题+答案).docx

    避免重复打印日志,浪费磁盘空间,务必在log4j.xml中设置additivity=false。 D .错误日志和业务日志尽量分开存放。 多选 16.关于代码注释,下列哪些说法符合《阿里巴巴Java开发手册》:ABD A .特殊注释标记,请...

    计算机二级公共基础知识

    性质4:具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分。 3. 满二叉树与完全二叉树 满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。在满二叉树中...

Global site tag (gtag.js) - Google Analytics