`
Tanyiming
  • 浏览: 978 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Eclipse的log4j插件log4e的用法

阅读更多
Eclipse的log4j插件log4e的用法

log4j简介
    简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。

Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值,则只能再一行行去掉这些注释恢复System.out.println语句。使用log4j可以很好的处理类似情况。


log4j使用方法
    下面介绍的是log4j一些理论方面的知识,读者觉得枯燥的话可以跳过本节直接阅读第三节实例部分。
  1、定义配置文件
   首先使用配置文件将使我们的应用程序更加灵活配置log日志输出方式包括输出优先级、输出目的地、输出格式。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties(键=值)。下面将介绍使用log4j.properties文件作为配置文件的方法:

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

  ②配置日志信息输出目的地Appender,其语法为:
  log4j.appender.appenderName = fully.qualified.name.of.appender.class
  log4j.appender.appenderName.option1 = value1
  …
  log4j.appender.appenderName.option = valueN

  其中,Log4j提供的appender有以下几种:
  org.apache.log4j.ConsoleAppender(控制台),
  org.apache.log4j.FileAppender(文件),
  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

  ③配置日志信息的格式(布局),其语法为:
  log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
  log4j.appender.appenderName.layout.option1 = value1
  …
  log4j.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 输出代码中指定的消息
    %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  %r 输出自应用启动到输出该log信息耗费的毫秒数
  %c 输出所属的类目,通常就是所在类的全名
  %t 输出产生该日志事件的线程名
  %n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

  2、在代码中使用Log4j
  ①得到记录器

  使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:

  public static Logger getLogger( String name)
  通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如:

  static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )

  ②读取配置文件
  当获得了日志记录器之后,第二步将配置Log4j环境,其语法为:

BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。
  PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。

例:PropertyConfigurator.configure(".\\src\\log4j.properties")
  DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。

  ③插入记录信息(格式化日志信息)
  当上两个必要步骤执行完毕,就可轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:
  Logger.debug ( Object message ) ;
  Logger.info ( Object message ) ;
  Logger.warn ( Object message ) ;
  Logger.error ( Object message ) ;

log4j范例程序
下面将使用一个最简单的范例程序来进一步说明log4j的使用方法。程序代码如下:
import org.apache.log4j.*;
public class LogTest {
    static Logger logger = Logger.getLogger(LogTest.class.getName());
    public static void main(String[] args) {
       PropertyConfigurator.configure ( “.\\src\log4j.properties”);
        logger.debug("Debug ...");
       logger.info("Info ...");
       logger.warn("Warn ...");
       logger.error("Error ...");
    }
}

程序说明:
① static Logger logger = Logger.getLogger(LogTest.class.getName());就是创建一个属于LogTest类的Logger对象,创建时要告知Logger你当前的Class是什么。

② PropertyConfigurator.configure ( “log4j.properties”)就是说使用当前工程目录下的src文件夹中的log4j.properties文件作为配置文件。若将log4j.properties放在工程根目录下也可不写此句,程序会自动找到配置文件。

③ logger.debug就是输出debug的信息,logger.info就是输出提示信息,logger.warn就是显示警告信息,logger.error就是显示错误信息。


下面是配置文件log4j.properties的内容:
log4j.rootCategory=DEBUG, stdout,R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log.txt
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy MMM dd HH:mm:ss} %-5p %c - %m%n

程序说明:
① log4j.rootCategory=DEBUG, stdout,R
就是说我要显示所有优先权等於和高于Debug的信息。
"stdout",”R”表示我定义了两个输出端(随便什么名字都好)。

②下面的三行说stdout输出端其实是标准输出Console,也就是屏幕。输出的格式是PatternLayout。转换方式是%5p (%F:%L) - %m%n,即前五格用来显示优先权,再显示当前的文件名,加当前的行数。最后是logger.debug()或logger.info()或logger.warn()或logger.error()里的信息。%n表示回车空行。

③再加上下面六行则log信息不光显示在屏幕上,而且将被保存在一个叫"log.txt"的文件里,文件最大为100KB。如果文件大小超过100KB,文件会被备份成"log.txt.1",新的"log.txt"继续记录log信息。

接下来我们可以改变log4j.properties,而不需重新编译就可以控制log信息是否显示、log信息的输出端类型、输出方式、输出格式,等等。举例如下:

①在log4j.properties文件里把"log4j.rootCategory=DEBUG,stdout,R"改写成"log4j.rootCategory=OFF, stdout,R",这样所有的log信息都不会显示了;解决了本文开始提出的问题。
②在log4j.properties文件里把"log4j.rootCategory=DEBUG,stdout,R"改写成"log4j.rootCategory=INFO, stdout,R",这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示;

在web程序中使用log4j注意问题
1、    由于jsp或servlet在执行状态时没有当前路径概念,所有使用PropertyConfigurator.configure(String)语句找log4j.properties文件时要给出相对于当前jsp或servlet的路径转化成为一个绝对的文件系统路径。方法是使用servletcontext.getrealpath(string)语句。例:

//得到当前jsp路径
String prefix =  getServletContext().getRealPath("/");

//读取log4j.properties
PropertyConfigurator.configure(prefix+"\\WEB-INF\\log4j.properties");

2、相应的log4j.properties设置某个属性时也要在程序中设置绝对路径。例:
log4j.appender.R.File属性设置日志文件存放位置。我们可以用读写.properties配置文件的方法进行灵活设置。

log4e使用说明
   在了解了log4j的功能后,我们肯定会我们的程序中编写一些Log4j日志记录。对于使用Eclipse的程序员Log4e将是我们最得力的log4j日志编写助手,现在开始Log4e之旅。

Log4e是一个免费的Eclipse Plugin,它可帮助你在你的Java工程中快速加入Log; 我们可以在http://log4e.jayefem.de/index.php/Download网站上下载Log4e最新版本。下载后将相应文件夹拷贝到Eclipse的插件目录下,重新Eclipse,在首选项中会多出一个Log4e选项。

Log4e可以有多个插入Log为一个方法、类,当然也可以在当前位置插入Log,同时其也可以把Sysout.out.println()的转换为log。
分享到:
评论

相关推荐

    eclipse log4j 插件

    - **Eclipse Marketplace**: 在Eclipse中打开"Help" > "Eclipse Marketplace",然后搜索"Log4j",选择合适的插件(如"Log4J Plugin"或"Log4e"等)进行安装。 - **手动安装**: 下载Log4j插件的`.zip`文件,解压后...

    eclipse插件 log4e

    Log4j是Java领域广泛应用的日志框架,而Log4E则是针对Eclipse IDE设计的一款强大的Log4j插件。本文将深入探讨Log4E的功能、使用方法以及它如何提升开发者的工作效率。 Log4E的主要功能集中在为Eclipse环境提供便捷...

    eclipse插件 log4e 2.0.1

    Log4e是一个免费的Eclipse插件,可以帮助您在Java项目中轻松使用日志记录器。 插件log4e没有绑定到任何特殊的日志框架。因此,您可以通过使用首选项定义自己的模板来适应自己的记录器。它对log4j、log4j 2、slf4j、...

    Log4E:Log4j插件

    Log4E是一款专门为Java开发人员设计的Log4j插件,它扩展了Log4j的功能,使得在开发过程中,对日志的管理和使用更加便捷高效。Log4j是一款广泛使用的开源日志框架,允许开发者记录应用程序运行过程中的事件,便于调试...

    Log4E 注册码 Log4J在Eclipse上插件

    根据提供的标题、描述、标签及部分内容,我们可以推测讨论的主题与Log4E插件及其注册码有关,特别是该插件在Eclipse开发环境中的应用。以下将详细解释与这些信息相关的知识点。 ### Log4E插件简介 #### 1.1 插件...

    eclipse插件log4e

    Log4j是Apache组织提供的一款广泛使用的日志框架,而Log4e则是针对Eclipse集成开发环境(IDE)设计的一款插件,使得在Eclipse中使用Log4j变得更为便捷。 Log4e的主要功能是为Eclipse提供一个直观的日志查看器,允许...

    log4e eclipse

    Log4e是Java世界中一个广泛使用的日志记录库,它的全称是Apache Log4j的增强版,适用于Android平台。Eclipse作为流行的Java IDE,为开发者提供了方便的日志调试工具,而Log4e则可以与Eclipse更好地集成,提供更高效...

    Eclipse插件_Log4E

    Log4E是基于Apache的Log4j框架进行扩展,专门为Eclipse IDE定制的日志查看工具。它允许开发者在Eclipse内部实时查看和分析应用程序的日志,而无需离开IDE或依赖外部日志查看器。这对于快速定位问题和优化代码非常有...

    eclipse/myeclipse log4e 插件 2.0.0 pro

    Log4E is a free Eclipse Plugin which helps you to use your logger easily in Java Projects. The Plugin Log4E is not bound to any special logging framework. Thus you might be able to adapt to your own ...

    log4e插件,集成在myeclipse里面

    Log4e,全称为Log for Eclipse,是基于Apache Log4j的日志框架的一个可视化工具。它的设计目标是帮助开发者在Eclipse或MyEclipse中实时查看和分析应用的日志信息。Log4e支持多种日志框架,如Log4j、Logback等,使得...

    log4e

    Log4e是基于Apache Log4j框架的扩展,Log4j是Java世界中广泛使用的日志记录库,它提供了灵活的日志配置,支持多种输出格式,并允许用户控制日志的级别和格式。Log4e则在此基础上,针对Eclipse IDE进行了优化,提供了...

    log4e插件

    log4e,全称为“Log4E”,是对Apache Log4j的一个增强版,专门为Eclipse IDE设计。Log4j是Java领域广泛应用的日志框架,而log4e则在其基础上进行了优化,增加了许多实用功能,如图形化界面、实时查看、过滤和搜索等...

    log4e plugin for the eclipse

    而Log4e是针对Eclipse集成开发环境(IDE)设计的一款插件,它使得在Eclipse中使用Log4j变得更加便捷。 **Log4e插件的核心特性:** 1. **可视化配置**:Log4e插件提供了一个图形用户界面,允许开发者直观地配置Log4...

    log4eEclipse插件

    **log4e Eclipse 插件详解** 在Java开发领域,日志管理是不可或缺的一部分,它帮助开发者追踪程序运行状态,定位错误和异常。log4e Eclipse 插件是一款专为Eclipse IDE设计的日志查看工具,它使得在Eclipse环境中...

    log4e_free_1.2.5

    描述提到 "eclipse 的 log4j 插件.log4j for eclipse => log4e",意味着 Log4e 是专门为 Eclipse 开发者设计的一个插件,它实现了 Log4j 的功能,并且优化了在 Eclipse 中的使用体验。Log4j 是一个广泛应用的 Java ...

    log4e 1.4.2 eclispe myeclipse 插件 天涯浪子

    Log4e是一个插件,是log4j日志很好的一个编写助手,Log4e是一个免费的Eclipse插件,它可帮助你在你的Java工程中快速加入日志。而且Log4e可以帮助你把System.out.println转成日志的输出,非常方便,还可以瞬间移除...

    de.jayefem.log4e_1.3.2

    Log4E,全称Jayefem Log4E,是基于Apache Log4j的一个扩展,专门为Eclipse和MyEclipse提供了图形化的日志查看和管理功能。它支持实时查看日志,提供过滤、搜索、颜色标记等功能,使得开发者能够更加高效地分析代码中...

    de.jayefem.log4e_free_1.5.1

    其次,Log4E支持多种日志框架,包括但不限于Log4j、Logback、Java Util Logging等,这意味着无论你的项目使用何种日志系统,Log4E都能够提供无缝对接的支持。用户可以通过插件配置日志级别,过滤不关心的信息,只...

    de.jayefem.log4e_pro_2.0.0.zip

    Log4E这个名字来源于著名的日志框架Log4j,它借鉴了Log4j的强大功能并进行了优化,更适合于Eclipse和MyEclipse等集成开发环境。Log4E的主要目标是简化日志配置,提供直观的图形界面,使得开发者可以方便地查看、过滤...

Global site tag (gtag.js) - Google Analytics