`
feohoo
  • 浏览: 112985 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

log4j指南

阅读更多


        log4j是java开发人员开发中最常用的日志工具,但是未必每个人都很明白地使用它。
       本文将log4j的一些知识点做了归纳总结,有助于开发人员更加清楚的掌握log4j,遇到一些与日志相关的问题,知道如何更好地处理。
 
1、Log4j.properties中至少有一个appender和一个logger。

2、log4j的初始化,通常我们需要把log4j.jar和Log4j.properties或者log4j.xml放入classpath,log4j默认会在classpath中寻找log4j的配置文件,当然我们也可以指定配置文件所在的位置。
比如:
set JAVA_OPTS=%JAVA_OPTS% -Dlog4j.configuration=
或者在程序中指定PropertyConfigurator.configure()(DOMConfigurator.configure()).

3、Log4j中有三个主要的组件,它们分别是Logger、Appender和Layout.
(1)Appender用来指明log信息打印到什么地方.
(2)Layout的作用是控制Log信息的输出方式.
(3)logger指定log的名字,打印级别和采用哪种或者哪几种Appender。
  

4、所有的logger都是继承于rootLogger,如果某个logger没有被分配level,那么它将从一个被分配了级别的最接近它的父logger那里继承level。
     所有logger最顶层的父logger为rootLogger,所以在定义日志的时候通常我会给rootLogger赋予一个level。

5、log打印的规则:
        当某个logger的logging request(即printing method(error(),info()..))的级别高于或者等于该logger的级别(即在log4j.properties或者log4j.xml中定义)的时候,该logging request就为enable.
         一旦该logger的logging request为enable,那么该logging request将总会打印到该logger所有的appender中包括它的所有父logger的appender。(而不会管父logger的级别如何)。除非该logger的父logger的additivity设置为false,默认的情况下为true。
        某个logger的additivity设置为false,表示log只打印到本log的appender中,而不再打印到其父logger的appender。

6、最简单的log4j.properties定义
log4j.rootLogger=debug, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

7、log4j定义说明

8、log4j是线程安全的,所以我们一般建议定义log时采用static
private static final Log log = LogFactory.getLog(Main.class);

9、性能优化:
推荐:
if (log.isDebugEnabled()) {
    log.debug("hello" + i + j);
}
而不是直接在程序中调用:
log.debug("hello" + i + j);
这样在logger打印条件不满足的情况下就不用执行字符串的操作。

10、实际开发过程中,我们通常会使用Jakarta Commons Logging (JCL),它提供的是一个日志(Log)接口(interface),允许程序开发人员使用不同的具体日志实现工具:Log4J, JDK 1.4等。
如果应用程序的classpath中有log4j, Commons Logging则使用相关的包装(wrapper)类(Log4JLogger)
如果应用程序运行在jdk1.4的系统中, Commons Logging使用相关的包装类(Jdk14Logger) 

分享到:
评论

相关推荐

    log4j2用户指南

    ### Log4j2 用户指南知识点概述 #### 1.1 欢迎使用 Log4j2! ##### 1.1.1 引言 几乎每一个大型应用都有自己的日志或跟踪 API。根据这一规则,E.U.SEMPER 项目决定在 1996 年初开发自己的追踪 API。经过无数次的...

    log4j-API-最新稳定版本log4j-1.2.17

    这表明我们可以从这个文件中获取Log4j 1.2 API的详细使用指南和参考文档。 **Log4j API知识点** 1. **日志级别**:Log4j API支持多个日志级别,如DEBUG、INFO、WARN、ERROR和FATAL。这些级别允许开发者根据需要...

    logging-log4j2-log4j-2.16.0-rc1.zip

    总的来说,"logging-log4j2-log4j-2.16.0-rc1.zip"的发布是Log4j团队对"Log4Shell"漏洞的有力回应,通过禁用可能导致安全问题的功能,提高了整体的安全标准。这一事件提醒我们,安全无小事,及时的更新和维护是保障...

    log4j所依赖jar包

    Log4j是一个广泛使用的Java日志框架,由Apache软件基金会开发。它为应用程序提供了一种灵活的日志记录机制,使得开发者能够控制日志信息的输出格式、级别以及目的地。在Java应用程序中,日志功能是必不可少的,因为...

    apache-log4j-2.14.0-bin.zip

    Apache Log4j 2.14.0 是一个广泛使用的日志记录库,尤其在Java应用程序中,它为开发者提供了灵活且高效的日志记录功能。这个版本是2021年的最新更新,意味着它包含了最新的特性、改进和安全修复。 Log4j 2是一个继...

    log4j使用完全指南

    本指南旨在为初学者提供一个全面的Log4J使用教程。 一、Log4J 组件介绍 1. Logger:Logger组件是Log4J的核心,它负责决定哪些日志信息应被记录,哪些应被忽略。Logger类提供了多种方法来记录不同级别的日志,如...

    Apache Log4j 2代码漏洞处置指南及检测工具.zip

    Apache Log4j 2存在远程代码执行漏洞处置指南 及期检测工具

    (zt)Commons-logging + Log4j 入门指南

    《Commons-Logging + Log4j 入门指南》 在Java编程中,日志记录是必不可少的一部分,它有助于调试、性能分析以及故障排查。Apache Commons Logging和Log4j是两个广泛使用的日志框架,本指南将深入讲解如何将它们...

    Strtus2.3升级2.5(包含log4j升级log4j2)所需jar,和相关资料

    5. **配置Log4j2**:Log4j2的配置文件(通常为log4j2.xml或log4j2.json)需要重新编写,以利用新特性并满足日志需求。例如,你可以配置日志分级(DEBUG, INFO, WARN, ERROR等),并实现日志分片以方便日志管理和分析...

    WebSphere V5 配置log4j

    `WSAD5.1配置log4j.txt`文件可能包含了具体的配置指南,读者可以参考这个文本文件进行操作。 总的来说,正确配置log4j对于WebSphere V5环境下的应用监控和问题排查至关重要。同时,结合iBATIS的SQL日志输出,可以...

    log4j2-2.3

    描述中提到"log4j2和log4j在配置文件上有较大的不同,备份一份log4j2",这暗示了Log4j2在配置方式上进行了改进,与旧的Log4j相比有显著的变化。备份Log4j2意味着保留了这个特定版本的配置和文件,以便在需要时能够...

    log4j完全使用指南

    《log4j完全使用指南》是一份针对Java开发者的重要参考资料,它涵盖了log4j这个流行的日志记录框架的全面知识。log4j是Apache软件基金会的一个项目,它为Java应用程序提供了一个灵活且高效的日志系统,帮助开发者...

    log4j包的使用说明及api帮助文档

    `3.log4j日志包的用法.docx`可能是一份关于如何在项目中使用log4j的指南,包括配置和代码示例。`log4j包的使用说明及api帮助文档`可能是更全面的教程,包含了更多实践指导和最佳实践。 总的来说,log4j为Java开发者...

    log4j2-demo.rar

    《Log4j到Log4j2的升级指南》 在日志管理领域,Log4j一直扮演着重要的角色,尤其在Java开发中,它作为一款强大的日志记录框架,为开发者提供了灵活的日志输出功能。然而,随着技术的发展,Log4j的升级版——Log4j2...

    log4j所需jar包

    这个压缩包提供的资源对于Java开发者来说非常有价值,它包含了在项目中集成log4j所需的基础文件和可能的操作指南。正确配置和使用log4j可以帮助提升代码的可读性和维护性,同时便于排查问题。通过深入理解和实践,...

    Java中Log4J

    在Java编程中,日志记录是一项至关重要的任务,它帮助开发者追踪程序运行状态,调试错误,以及优化性能。Log4J是Apache软件基金会的一个开源项目...希望这个指南能帮到你理解如何在Java中有效地利用Log4J进行日志管理。

    log4j_2.1.5.zip

    《log4j 2.1.5:JNDI 补丁详解及安全指南》 在IT行业中,日志管理是系统监控、故障排查和安全审计的重要环节。Log4j,作为Apache开源组织提供的一款广泛使用的Java日志框架,因其高效、灵活的特点,被众多企业和...

    Kafka+Log4j实现日志集中管理

    可能包含了项目相关的示例图片、说明文档和链接,如"www.Linuxidc.com.jpg"可能是展示Kafka或Log4j配置的截图,"教程重要说明及更新链接点击这个文本.txt"可能是关于如何使用这些工具的详细指南,"Linux公社...

    log4j文档及使用

    而"log4j的使用.pdf"则是一份详细的使用指南,涵盖了Log4j的配置、API使用、性能优化等方面,是学习和掌握log4j的重要参考资料。 最后,"apache-log4j-1.2.15.zip"是Log4j的源码包,对于想要深入了解其内部实现机制...

    log4j使用手册和配置文件示例

    这个文件是一个帮助文档,包含了log4j 1.2版本的详细指南和API参考,对于理解log4j的使用和配置非常有帮助。 **Log4jTest.java** 这是一个Java源代码文件,很可能包含了一些使用log4j进行日志记录的示例代码,通过...

Global site tag (gtag.js) - Google Analytics