Apache Logging Services Project 日志组件
log4j - Java 语言
log4xx - C++ 语言
log4net - .NET 版本
log4php - PHP 语言
Chainsaw - 日志查看与分析工具
Logger hierarchy (Logger 分层结构)
logger 是有名称的,并且 logger 的名称大小写敏感,遵循分级名称规则。引用Log4j的说明:
Named HierarchyA logger is said to be an ancestor of another logger if its name followed by a dot is a prefix of the descendant logger name. A logger is said to be a parent of a child logger if there are no ancestors between itself and the descendant logger.例如,名称为"com.foo"的logger为名称为"com.foo.Bar"的logger的父亲,同样,"java"为"java.util"的父亲、"java.util.Vector"的祖先。
可以指定logger的日志级别,可取得值为(从低到高):TRACE、DEBUG、INFO、WARN、ERROR、FATAL。
这些常量被定义在org.apache.log4j.Level类中。可以通过继承Level类来定义自己的日志级别,但不建议这样做。
日志级别可以被继承
如果没有为logger指定日志级别,则它将从已指定日志级别的最近的祖先那里继承日志级别。引用Log4j的说明:
Level Inheritance
The inherited level for a given logger C, is equal to the first non-null level in the logger hierarchy, starting at C and proceeding upwards in the hierarchy towards the root
logger.
为确保每一个logger最终都可以有一个日志级别,经常为rootLogger指定一个日志级别。
只有日志请求的级别比logger的日志级别高,日志请求才会被处理。引用Log4j的说明:
Basic Selection Rule
A log request of level p in a logger with (either assigned or inherited, whichever is appropriate) level q, is enabled if p >= q.
This rule is at the heart of log4j. It assumes that levels are ordered. For the standard levels, we have
DEBUG < INFO < WARN < ERROR < FATAL
.
用相同的名称调用Logger.getLogger方法,永远都返回对同一个logger对象的引用。
logger的分层结构与它们创建和配置的先后次序无关,也就是说,"父亲"总能找到它的"子孙"。
Appender 日志输出目的地
Log4j中日志输出的目的地为appender,一个logger可以有多个日志输出目的地,即可以有多个appender。
可以通过Logger类的addAppender(org.apache.log4j.Appender appender)方法来为logger添加appender。
appender具有相加性,引用Log4j的说明:
Each enabled logging request for a given logger will be forwarded to all the appenders in that logger as well as the appenders higher in the hierarchy.
Appender Additivity
The output of a log statement of logger C will go to all the appenders in C and its ancestors. This is the meaning of the term "appender additivity".
However, if an ancestor of logger C, say P, has the additivity flag set to false
, then C's output will be directed to all the appenders in C and it's ancestors upto and including P but not the appenders in any of the ancestors of P.
Loggers have their additivity flag set to true
by default.
分享到:
相关推荐
分别有disruptor-3.3.4.jar(Log4j2异步日志的底层实现)、log4j-api-2.19.0.jar(log4j门面)、log4j-core-2.19.0.jar(log4j实现)、log4j-slf4j-impl-2.19.0.jar(SLF4J与Log4j绑定)、slf4j-api-1.7.30.jar(SLF...
Log4j2 配置模板学习笔记 Log4j2 是 Java 语言中一种流行的日志记录工具,它提供了灵活的日志记录管理功能。下面我们将学习 Log4j2 配置模板的使用和配置。 引入 Log4j2 依赖 在使用 Log4j2 之前,需要在 Maven ...
2. **配置日志实现**:在`commons-logging.properties`文件中,指定日志实现为Log4j。例如: ``` org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog ``` 3. **配置Log4j**:在`...
**log4j学习源码教程** 在Java编程中,日志记录是不可或缺的一部分,它能够帮助开发者追踪程序运行状态,定位错误和异常,为调试和性能优化提供关键信息。Log4j是Apache组织开发的一个开源日志框架,因其强大的功能...
**Log4j学习笔记** Log4j是一款广泛应用于Java编程中的日志记录工具,由Apache软件基金会开发。它提供了一种灵活且强大的机制来记录应用的运行情况,这对于调试、性能分析、问题追踪以及系统监控至关重要。这篇学习...
《Log4j2检测工具——理解与应用》 在当今的软件开发中,日志记录是必不可少的一个环节,Log4j作为Java中最流行的日志框架之一,被广泛应用于各种项目中。然而,2021年曝光的Log4Shell漏洞(CVE-2021-44228)引发了...
这个“log4j示例项目”旨在帮助开发者理解和使用Log4j,通过该项目,我们可以深入学习Log4j的配置、使用方法以及其在实际开发中的应用。 **1. Log4j的组成部分** Log4j主要包括三个核心组件:Logger(日志器)、...
《深入学习log4J》是一本专注于Java日志框架Log4J的专业书籍,旨在帮助开发者深入理解并熟练运用Log4J进行系统日志管理和分析。Log4J是Apache组织开发的一个开源日志记录工具,广泛应用于Java应用程序中,提供灵活的...
《深入理解Log4j2 RCE漏洞:从概念到实战》 在信息技术领域,安全问题始终是关注的焦点。本文将深入探讨一个重要的安全漏洞——Log4j2远程代码执行(RCE)漏洞,该漏洞曾引起全球广泛关注。我们将从项目标题"Log4j2...
标题中的“log4jdbc-log4j2配置简记”指的是在Java开发中使用log4jdbc-log4j2库来监控和记录SQL查询的过程。log4jdbc是一个开源项目,它允许开发者通过日志系统来追踪数据库操作,而log4j2是log4j的升级版,提供了更...
在《Log4j将System.out搞到log4j中输出四》这篇博文中,作者可能详细讨论了这些步骤,并可能分享了一些实战经验。通过学习这篇博文,读者可以更深入地了解如何在实际项目中实现这一转换,提升日志管理的效率。 总结...
通常,一本完整的手册会包括以下几个部分:介绍Log4j的基础知识、详细说明如何配置和使用Log4j、示例和最佳实践、高级配置技巧、性能优化建议、以及Log4j的二次开发等方面内容。读者可以根据个人需要,找到对应章节...
**日志系统在软件开发中扮演着至关重要的角色,它能帮助开发者跟踪程序运行...同时,不断学习和探索log4j的高级特性,如异步日志、MDC(Mapped Diagnostic Context)等,可以进一步提升日志系统的实用性和可维护性。
**深入学习log4j** 日志记录在软件开发中扮演着至关重要的角色,它帮助开发者追踪程序运行状态,定位错误,以及进行性能分析。而Apache的log4j库是Java平台上的一个著名日志框架,提供了强大的日志管理和输出功能。...
二、Log4j核心组件 1. **Logger**:日志器是Log4j的基本组件,负责接收日志事件并将其传递给适当的输出。开发者可以根据需要创建多个日志器,每个日志器可以有不同的输出配置。 2. **Appender**:Appender负责将...
"源码"标签暗示我们将讨论Log4j的内部机制或如何查看和理解其代码,这对于学习和定制Log4j功能很有帮助。而"工具"标签则表明Log4j是一个开发者常用的工具,它的使用和配置是提高开发效率的关键。 **压缩包文件名称...
**Log4j学习笔记** Log4j是一款广泛应用于Java编程中的日志记录框架,由Apache软件基金会开发。它提供了一套灵活的日志记录系统,帮助开发者在开发过程中追踪应用程序的行为,便于调试、性能分析和问题排查。Log4j...
这个压缩包包含了Log4j 1.2.16的源代码,对于学习和理解Log4j的工作原理以及自定义其行为非常有帮助。 在Log4j中,核心概念包括Logger、Appender、Layout和Level。Logger是日志记录的主要接口,通过它来创建和管理...
2. **log4j.jar**: 这是Log4j的主要库文件,包含了Log4j的API和实现。开发者将此jar包引入项目中,就可以使用Log4j提供的各种日志记录功能。新版本和旧版本的log4j.jar可能存在功能更新、性能优化、安全修复等差异,...