`

Log4j 高级用法

阅读更多

      在Log4J中存在几个概念首先介绍一下,最最重要的两个是Logger和Appender(请参考Log4J手册),其实是继承层次以及输出控制。

      首先,Log4J中总是存在一个rootLogger,即使没有显示配置也是存在的,并且默认输出级别为DEBUG。其它的logger都继承自这个rootLogger(如果其他logger未单独定义其输出级别)。

 

      其次,Log4J中的层次是用'.'来分隔的,如log4j.logger.com.example.test,这里并不是说log4j.logger后面一定是具体的包名乃至类名,这个名称可以自定义,我们甚至可以定义一个log4j.logger.A.B.C, 在类里取名称为A.B的logger,如:

      Logger logger = Logger.getLogger("A.B")

 

      上例中我们建立了3个logger实例,它们分别是"A"、"A.B"、"A.B.C"。每次我们在系统中取得logger时,并不是新建实例,这些实例是系统启动的时候就按照配置文件初始化好的(也可能是第一次引用的时候建立的,然后缓存其实例供以后使用,这部分还没有时间研究)。

 

限制appender叠加性

例1:未限制叠加

log4j.rootLogger=DEBUG, Console
log4j.logger.A=DEBUG, Console
log4j.logger.A.B=INFO, Console

 

 

      对于logger A.B输出的任何日志会往控制台输出三次,原因是A.B继承A的以及A的父logger的所有appender,

这种继承关系仅仅是把父logger的appender添加到自己的appender列表中,父logger的输出level不会影响

子logger的输出。

 

 

例2:限制appender叠加

log4j.rootLogger=DEBUG, Console
log4j.logger.A=DEBUG, Console
log4j.logger.A.B=INFO, Console
log4j.additivity.A.B=false

  

      logger A.B的日志仅会输出到自己Console中,不会继承任何父logger的appender。

 

控制appender的输出级别

      若想对输出到appender中的日志级别进行限制的话,就需要用到threshold来控制。

           

log4j.threshold=ERROR 

 

      用来控制所有的appender,即输出到所有appender的日志,不管原来是什么级别的,都不能低于threshold所规定的级别。

    

log4j.appender.Console.threshold=ERROR 

 

      用来控制指定的appender的输出级别。

分享到:
评论

相关推荐

    Log4j2、Fastjson、Log4j的BurpSuite插件亲测有效

    Log4j、Log4j2和Fastjson的安全性问题在过去曾引起广泛关注,例如Log4j2的CVE-2021-44228(也被称为Log4Shell漏洞),这是一个远程代码执行漏洞,影响了许多使用Log4j2的系统。这个插件可能就是为了检测和利用这些...

    log4j使用教程(详解)

    **日志框架Log4j详解** 在Java编程中,日志记录是不可...理解和熟练使用Log4j,对于提升Java应用的调试和维护效率有着重要作用。在实际项目中,根据需求选择合适的配置和使用方式,可以使日志记录更加高效和有针对性。

    The Complete Log4j Manual

    通常,一本完整的手册会包括以下几个部分:介绍Log4j的基础知识、详细说明如何配置和使用Log4j、示例和最佳实践、高级配置技巧、性能优化建议、以及Log4j的二次开发等方面内容。读者可以根据个人需要,找到对应章节...

    log4j-1.2.17.jar及配置文件

    本文将深入探讨log4j-1.2.17.jar及其配置文件,以揭示其工作原理和应用场景。 一、Log4j简介 Log4j是一个灵活且高效的日志记录库,为Java应用程序提供了丰富的日志功能。它的设计目标是提供一个能够进行调试、性能...

    log4j日志配置以及配置文件详解

    Log4j作为Java领域广泛应用的日志框架,提供了强大的日志记录功能和灵活的配置。本文将深入探讨log4j的配置以及配置文件的详解。** 首先,我们要理解什么是`log4j.properties`文件。这是log4j框架的配置文件,使用...

    Log4J_全能配置文件.pdf

    Log4J是一款非常流行的Java日志框架,被广泛应用于各种规模的应用程序中。它提供了灵活的日志记录机制,可以将日志输出到不同的目的地,如控制台、文件、数据库等,并且支持多种格式化选项来满足不同场景的需求。...

    log4j简述(架构、用法等)

    ### Log4j 架构与用法详解 #### 一、Log4j 概述 Log4j 是一款由 Apache 软件基金会维护的开放源代码项目,它提供了强大的日志记录功能,广泛应用于 Java 应用程序的开发过程中。自 1996 年以来,Log4j 经历了不断...

    log4j.properties配置文件

    正确配置`log4j.properties`对于应用程序的日志管理和调试至关重要。 #### 二、日志级别 Log4j支持以下几种级别的日志输出:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL。这些级别按照从高到低的顺序排列,其中OFF...

    log4j多个简单实例

    **日志框架Log4j详解** ...同时,`log4j.xml`文件可以提供更高级的配置示例,如自定义Appender和过滤器。不断探索和实践,你将能够充分利用Log4j的强大功能,为你的Java项目带来更高效的日志管理。

    log4j中文手册.pdf

    此外,手册还可能涉及自定义布局、过滤器、触发策略等高级特性,这些功能使得log4j能够适应各种复杂的需求。例如,通过使用PatternLayout,你可以自定义日志信息的输出格式;使用Filters可以进一步筛选要记录的日志...

    log4j 下载

    Apache Log4j是Java平台上的一个开源日志记录框架,它在软件开发领域具有广泛的应用,特别是在Java企业级应用中。Log4j为开发者提供了灵活的日志记录方案,使得程序在运行过程中可以方便地输出调试信息、警告消息...

    log4j入门详解

    相较于简单的打印语句,Log4j提供了更为高级的功能,比如能够根据不同的级别过滤日志消息、支持多种输出方式以及自定义日志格式等。Log4j的设计目的是为了帮助开发者更容易地记录日志信息,同时也方便系统管理员对...

    日志 log4j-slf4j+logback1.3.0

    本文将深入探讨“日志4j(Log4j)、SLF4J(Simple Logging Facade for Java)和logback 1.3.0”这三者之间的关系以及它们在Java应用中的作用。 首先,Log4j是Apache软件基金会开发的一个流行的日志记录框架,它允许...

    log4j简单demo

    **日志系统的重要性** 在软件开发中,日志系统扮演着至关重要的角色。它记录了程序运行时的各种信息,如错误、警告、调试信息等,帮助开发者追踪问题、...在实践中不断探索,你会发现更多Log4j的高级特性和应用场景。

    log4j日志打印demo

    除了基础功能,Log4j还支持更高级的特性,如自定义日志格式、异步日志记录、过滤器等。同时,Log4j2作为Log4j的升级版,提供了更多的性能优化和新的特性。 总结,Log4j是Java开发中的必备工具,通过合理的配置和...

    log4j测试代码

    除了基本的日志记录,Log4j还支持自定义Appender和Layout,以及Filter和LayoutWrapper等高级特性,以满足更复杂的需求。例如,可以使用SMTPAppender发送错误日志邮件,或者使用PatternLayout自定义日志输出格式。 ...

    springboot+mybatis+log4j2

    Spring Boot、MyBatis和Log4j2是三个常见的开源框架,它们分别在应用程序开发的不同方面提供了强大的支持。本项目将Spring Boot与MyBatis集成,同时舍弃了Spring Boot默认的日志系统Logback,转而采用Log4j2来实现...

    精通log4j

    四、Log4j的高级特性 1. 自定义Appender和Layout:Log4j允许开发自定义的Appender和Layout,以满足特殊需求,如发送日志邮件、写入特殊格式的文件等。 2. 异步日志:通过AsyncAppender,可以实现日志输出的异步化...

Global site tag (gtag.js) - Google Analytics