51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1790|回复: 0

使用log4j进行日志管理

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:28
  • 签到天数: 385 天

    连续签到: 4 天

    [LV.9]测试副司令

    发表于 2018-12-12 15:06:53 | 显示全部楼层 |阅读模式
    1、Log4j简介

      作用:

    1、 跟踪代码的运行轨迹。

    2、 输出调试信息

    三大组成:

    1、 Logger类---生成日志。

    2、 Appender类---定义日志输出的目的地。

    3、 Layout类---指定日志输出的格式。

    2、Logger组件

      日志共分为5种级别(ON开,OFF关这两个不计算在内),从高到底(从严重到轻微)排序为:

        FATAL---严重的错误,可能会导致程序不能正常运行. 类似System.exit(),整个项目都不能运行

       ERROR---错误,影响程序的正常运行。           类似当前线程挂了,但其它线程或组件还在跑

       WARN---警告,不会影响程序的运行。最好将此问题修正。

    INFO ---一般信息。不影响程序的运行。可能是用户的调试信息。可有可无。等同于syserr

    DEBUG ---一般的信息。等同于sysout

    上面五种级别分别对应以下几个方法

    fatal(Object)

      error(Object)

      warn(Object)

      info(Object)

      debug(Object)

    当信息大于或是等于配置的级别时才会输出日志。

    3、Appender组件

      (仅要求记住两个)

      Console ---控制台。org.apache.log4j.ConsoleAppender

    File---文件。  org.apache.log4j.FileAppender, org.apache.log4j.RollingFileAppender

    4、Layout组件

      功能是定义日志的输出格式

      org.apache.log4j.HTMLLayout

    org.apache.log4j.PatternLayout (自定义)

      org.apache.log4j.SimpleLayout



      对于自定义格式,see page 256 chart 17-1。

      %d%p %c %m%n是我经常用的格式,要求记住.

      %d –具体的时间.

      %p –优先级

      %c –信息的输出类

      %L—行号

      %m –信息文本

      %n —换行符

    5、Log4j的基本使用方法

      (以下以项目ch16为例)

      步1、将log4j.jar文件,Copy到WEB-INF/lib目录下。

         (此时发布程序,启动程序,会发出警告信息。信息要求配置log4j.properties文件)

      步2、在src目录下(即WEB-INF/classes)建立一个log4j.properties文件

         在WEB-INF/classes目录下,为log4j的默认目录。Log4j.properties也是log4j的默认文件名。

      步3、书写log4j.properties文件如下:



       #####配置根元素

    log4j.rootLogger=INFO,file,console

    #file的输入地址为文件

    log4j.appender.file=org.apache.log4j.RollingFileAppender

    #以下是具体的目录

    log4j.appender.file.File=d:/a.log

    #每个文件的最大大小

    log4j.appender.file.MaxFileSize=512KB

    #最多可以是多少个文件

    log4j.appender.file.MaxBackupIndex=3

    #信息的布局格式-按指定的格式打出

    log4j.appender.file.layout=org.apache.log4j.PatternLayout

    #具体的布局格式 - %d为时间

    log4j.appender.file.layout.ConversionPattern=%d%p [%c] %m%n



    #以下配置输出到控制台

    log4j.appender.console=org.apache.log4j.ConsoleAppender

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

    log4j.appender.console.layout.ConversionPattern=%d%p [%c] %m%n



    ####以下配置自己的类输出日志的信息,即将com.three包下的日志输出到的目录

    ###同时也会打出到控制台。尽管是没有配置打出到控制台。但依据log4j的继承性,它仍然具体打出的控制台的功能。

    log4j.category.com.three=INFO,myFile

    log4j.appender.myFile=org.apache.log4j.RollingFileAppender

    log4j.appender.myFile.File=d:/b.txt

    log4j.appender.myFile.layout=org.apache.log4j.PatternLayout

    log4j.appender.myFile.layout.ConversionPattern=%d%p [%c] %m%n

    具体的说明,请参考上面以#号注释的部分。

    注意上面红体字下面的部分,是书上没有讲的。此部分只配置对com.three包下的类指出日志信息。掌握具体配置的方法。

      步4、书写自已的类,并在自己的类中使用日志

    package com.three;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import org.apache.log4j.Logger;

    import org.apache.struts.action.Action;

    import org.apache.struts.action.ActionForm;

    import org.apache.struts.action.ActionForward;

    import org.apache.struts.action.ActionMapping;

    /**打出日志信息的类*/

    publicclass ThreeAction extends Action{

      //获取log对像

      Logger log = Logger.getLogger(ThreeAction.class);

      public ActionForward execute(ActionMapping mapping,

                     ActionForm form,

                     HttpServletRequest req,

                     HttpServletResponse rep){

        log.info("Hello...我使用log打出的信息");

        return mapping.findForward("success");

      }

    }


    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-3-29 14:23 , Processed in 0.063714 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表