`
zhtch_123
  • 浏览: 84427 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Log4J学习总结

 
阅读更多

Log4J 学习笔记

 

 

l 什么是log4j?

Log4JApache 的一个开源项目,是一个在我们编写代码过程提供实现日志输出功能的包。Log4J 可以实现通过配置的方式日志输出、日志目的地定义、日志格式定义 等功能,有效的管理日志。在使用Log4J 之前先看一下几个概念:

 

l log4j 基本概念

在使用Log4j 之前,先看看3 个基本概念:Looger,Appender,PatternLayout

 

 

三者关系如下:

 

三者关系图

图1:Logger,Appender,PatternLayout关系图

 

1.Logger 日志输出器,提供输出日志功能。

Log4J 内置了7Log 等级,从低到高分别为ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF 。每个Logger 都要默认定义一个等级。同时对于每一条要输出的日志也定义了等级,不同等级的日志用不同的方法调用,共5 种等级(DEBUG, INFO, WARN, ERROR, FATAL), 通过如下方法写出日志:

Logger logger=Logger.getLogger( logname);

logger.info(“…”);

logger.error(“…”);

logger.debug(“…”);

logger.warn(“…”);

logger.fatal(“…”);

如果日志的等级高于等于日志输出器的等级,那么该日志才会被写入。

2.Appender 日志目的地,用来定义日志目的地对象。

在日志写出之前还必须先定义好日志器对应的日志目的地。一个日志器可以定义多个目的地。日志目的地有多种类型。其结构如下:

 

 

Appender结构图

图2:Appender结构图

 

 

其中Appender 是顶层接口,下面定义了很多种Appender ,几种常见的Appender 解释如下:

 

ConsoleAppender: 控制台作为日志输出地

FileAppender: 文件作为日志输出地

RollingFileAppender: 日志文件的大小受到限制,当内容超出最大的限制时,该文件将向上滚动。

其他的类型笔者也未曾深入研究。

3.PatternLayout :日志布局,用于定义日志格式。

定义日志布局,指定在日志输出到目的地的时候以怎样的格式被输出。

 

l 3. 如何使用Log4J

无论你是否创建 logger Log4J 都会默认创建一个 RootLogger ,该日志器可以通过 Logger.getRootLogger() 获得。所以的 logger 都将继承该根 Logger.

在使用 Log4j 进行日志记录之前必须先初始化 Log4J 配置,配置可以包含如下工作:

定义日志器 logger ,如:

定义指定 Layout appender

定义 logger 对应的 appender

Log4j 可以通过如下两种方式进行初始化

a. 默认配置

org.apache.log4j.BasicConfigurator .configure ();

它将完成如下工作:

  • 用默认 pattern 创建 PatternLayout 对象 p
    PatternLayout p = new PatternLayout("%-4r[%t]%-5p%c%x - %m%n");
  • p 创建 ConsoleAppender 对象 a ,目标是 system.out ,标准输出设备:
    ConsoleAppender a = new ConsoleAppender(p,ConsoleAppender.SYSTEM_OUT);
  • root logger 增加一个 ConsoleAppender p
    rootLogger.addAppender(p);
  • root logger log level 设置为 DEBUG 级别:
    rootLogger.setLevel(Level.DEBUG);

b. 自定义配置

这个是比较推荐也比较常用的一种配置。可以将配置定义在程序之外,在程序之外控制日志系统的运行。主要通过 XML 文件配置。由 org.apache.log4j.xml.DOMConfigurator.configure() 方法读入配置并初始化。 org/apache/log4j/xml/log4j.dtd 里定义了 XML 文件的语法。下面简单介绍如何在 XML 文件里定义 Logger Appender root 配置及两者关系等。

定义 Logger( 注:同名的 logger Log4J 里只会有一个对象 )

 

以上是关于 Log4J 的一些概念和使用介绍。下面举两个简单例子说明:

例子 1 使用 BasicConfigurator.congigure() 初始化

Log4JTest.java:

 

例子 2 使用 XML 文件配置

Log4j_config.XML:

 

 

Log4JXMLTest.java:

 

以上是关于 Log4J 的一些基本介绍,笔者认为日志对一个应用的作用应该是巨大的,当然也会带来一定的系统开销,但是这是值得的。同时 Log4J 提供的可配置的日志系统管理,方便易用,推荐大家使用。

 

 

 

分享到:
评论

相关推荐

    log4j学习

    ### Log4j与Commons Logging:深入理解与实践 #### 引言 在软件开发过程中,日志记录是一项至关重要的任务,它不仅帮助开发者在开发阶段调试代码,也在生产环境中帮助运维人员监控系统状态,及时发现并解决问题。...

    Log4j的学习笔记

    **Log4j学习笔记** Log4j是一款广泛应用于Java编程中的日志记录工具,由Apache软件基金会开发。它提供了一种灵活且强大的机制来记录应用的运行情况,这对于调试、性能分析、问题追踪以及系统监控至关重要。这篇学习...

    Log4j将System.out搞到log4j中输出四

    总结来说,Log4j提供了一套强大的日志管理框架,通过自定义Appender和PrintStream,我们可以轻松地将`System.out.println()`的输出整合到Log4j中,从而实现日志的集中管理和分析。这对于大型项目或者需要严格监控的...

    log4j jarjar包

    总结来说,Log4j作为一个强大的日志框架,其强大的功能和高度可定制性使得它在Java项目中占据着重要地位。正确理解和使用log4j-1.2.16.jar,不仅可以提升开发效率,还能为项目的稳定性和维护性提供有力保障。通过...

    log4j 学习 笔记

    ### Log4j 学习笔记知识点详解 #### 一、Log4j 概述与架构 **Log4j** 是 **Apache** 组织提供的一个开源日志框架,旨在简化应用开发中的日志记录工作。它能够灵活地记录程序运行时的信息,并允许用户自定义日志的...

    log4j实例,log4j-1.2.9.jar

    总结来说,Log4j-1.2.9是一个重要的日志工具,它提供了灵活的日志记录机制,便于调试、监控和问题排查。通过学习和实践提供的实例,开发者可以更好地掌握其用法,提高项目的可维护性和可追溯性。不过,随着技术的...

    log4J最简单入门

    ### Log4J 最简入门详解 #### 一、Log4J简介与基本概念 Log4J是一款非常流行的Java日志框架,由Apache...通过学习这些基础内容,开发者可以轻松地在自己的项目中集成Log4J,从而更好地管理和调试应用程序的日志信息。

    Log4j实例

    Log4j是一款广泛应用于Java平台的日志记录框架,它提供了灵活且...通过学习和掌握Log4j,开发者可以提高代码的可维护性和问题定位的效率。在实际应用中,根据项目需求调整配置文件,可以实现对日志的精细化管理和控制。

    log4J学习笔记

    ### log4J学习笔记 #### 一、Apache Commons Logging与log4j及JDK Logger的关系 **Apache Commons Logging** 的设计初衷是为了提供一个简洁统一的日志接口,它并不直接实现日志功能,而是通过桥接的方式支持多种...

    log4j注释文档

    通过本文档的学习,我们了解了log4j配置文件的基本结构和关键配置项的含义。正确配置log4j可以帮助开发者高效地管理和分析程序运行过程中的信息,对于软件开发和维护具有重要意义。希望初学者能够结合实际项目需求,...

    log4j.rar log4j使用方法

    **标题与描述解析** 标题“log4j.rar log4j使用...通过阅读提供的`log4j使用方法.doc`文档,你可以更深入地学习如何在你的项目中有效地利用log4j。而`log4j.rar`文件则可能包含实际操作的例子,可以帮助你实践所学。

    apache-log4j-2.3-bin和commons-logging-1.2

    总结来说,Apache Log4j 2.3 和 Commons Logging 1.2 在Java Web开发中扮演着重要角色,它们帮助开发者方便地记录、管理和分析应用程序的日志,提升开发效率和问题排查能力。这两个库的结合使用,能够实现日志系统的...

    log4j 1.2.15 源码

    总结来说,log4j 1.2.15的源码学习对于Java开发者而言是一次宝贵的实践机会,能够帮助我们了解日志框架的设计思路,提升解决问题的能力。通过对源码的阅读和理解,我们可以更好地利用log4j,同时也能为未来的日志...

    log4j中文手册(中文版)

    - 通过对`log4j`的基本概念、主要组件以及配置方法的学习,我们可以有效地利用`log4j`来管理项目的日志记录需求,提高开发效率并确保应用稳定运行。 #### 11. 附录 - **参考文档**:列出了一些相关的技术文档和资料...

    log4j日志打印demo

    **正文** 日志系统在软件开发中扮演着至关重要的角色,它可以帮助开发者追踪程序...在"log4j日志打印demo"中,你将学习到如何设置Log4j以实现控制台和SD卡(针对Android)的日志输出,从而在实际开发中更加得心应手。

    log4j

    **标题与描述解析** ...通过Eclipse工程文件,学习者可以深入理解Log4j的工作原理,以及如何配置和使用它来适应不同场景的需求。这个实例工程为开发者提供了一个实践Log4j功能的平台,有助于提高日志管理能力。

    log4j简单demo

    **日志系统的重要性** 在软件开发中,日志系统扮演着至关重要的角色。...深入学习和理解Log4j,能够极大地提高你的开发效率和问题排查能力。在实践中不断探索,你会发现更多Log4j的高级特性和应用场景。

    phplog4j

    总结来说,phplog4j是一个PHP的日志管理工具,它可能借鉴了Java Log4j的设计理念,提供了丰富的日志记录功能。源代码的提供使得开发者能够自定义和扩展其功能,满足特定项目需求。通过博客文章,我们可以学习如何...

Global site tag (gtag.js) - Google Analytics