`
sfish
  • 浏览: 28284 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Log4j 学习二

    博客分类:
  • java
阅读更多
Apache Logging Services Project 日志组件
log4j - Java 语言
log4xx - C++ 语言
log4net - .NET 版本
log4php - PHP 语言
Chainsaw - 日志查看与分析工具

Logger hierarchy (Logger 分层结构)

logger 是有名称的,并且 logger 的名称大小写敏感,遵循分级名称规则。引用Log4j的说明:
Named Hierarchy
A 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.


分享到:
评论
1 楼 zagile 2008-01-08  
log4j  用得不少 很多地方都能看到 但是log4xx我到目前还没有看到有人用过 不知是为什么还是我寡闻

相关推荐

    Log4j2学习用到的jar包及apache-log4j-2.19.0-bin.zip

    分别有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.xml配置模板

    Log4j2 配置模板学习笔记 Log4j2 是 Java 语言中一种流行的日志记录工具,它提供了灵活的日志记录管理功能。下面我们将学习 Log4j2 配置模板的使用和配置。 引入 Log4j2 依赖 在使用 Log4j2 之前,需要在 Maven ...

    log4j学习

    2. **配置日志实现**:在`commons-logging.properties`文件中,指定日志实现为Log4j。例如: ``` org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog ``` 3. **配置Log4j**:在`...

    log4j学习源码教程

    **log4j学习源码教程** 在Java编程中,日志记录是不可或缺的一部分,它能够帮助开发者追踪程序运行状态,定位错误和异常,为调试和性能优化提供关键信息。Log4j是Apache组织开发的一个开源日志框架,因其强大的功能...

    Log4j的学习笔记

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

    log4j2_detect_gui.zip

    《Log4j2检测工具——理解与应用》 在当今的软件开发中,日志记录是必不可少的一个环节,Log4j作为Java中最流行的日志框架之一,被广泛应用于各种项目中。然而,2021年曝光的Log4Shell漏洞(CVE-2021-44228)引发了...

    log4j示例项目

    这个“log4j示例项目”旨在帮助开发者理解和使用Log4j,通过该项目,我们可以深入学习Log4j的配置、使用方法以及其在实际开发中的应用。 **1. Log4j的组成部分** Log4j主要包括三个核心组件:Logger(日志器)、...

    深入学习log4J

    《深入学习log4J》是一本专注于Java日志框架Log4J的专业书籍,旨在帮助开发者深入理解并熟练运用Log4J进行系统日志管理和分析。Log4J是Apache组织开发的一个开源日志记录工具,广泛应用于Java应用程序中,提供灵活的...

    log4j2_rce 项目

    《深入理解Log4j2 RCE漏洞:从概念到实战》 在信息技术领域,安全问题始终是关注的焦点。本文将深入探讨一个重要的安全漏洞——Log4j2远程代码执行(RCE)漏洞,该漏洞曾引起全球广泛关注。我们将从项目标题"Log4j2...

    [简单]log4jdbc-log4j2配置简记

    标题中的“log4jdbc-log4j2配置简记”指的是在Java开发中使用log4jdbc-log4j2库来监控和记录SQL查询的过程。log4jdbc是一个开源项目,它允许开发者通过日志系统来追踪数据库操作,而log4j2是log4j的升级版,提供了更...

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

    在《Log4j将System.out搞到log4j中输出四》这篇博文中,作者可能详细讨论了这些步骤,并可能分享了一些实战经验。通过学习这篇博文,读者可以更深入地了解如何在实际项目中实现这一转换,提升日志管理的效率。 总结...

    The Complete Log4j Manual

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

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

    **日志系统在软件开发中扮演着至关重要的角色,它能帮助开发者跟踪程序运行...同时,不断学习和探索log4j的高级特性,如异步日志、MDC(Mapped Diagnostic Context)等,可以进一步提升日志系统的实用性和可维护性。

    深入学习log4j

    **深入学习log4j** 日志记录在软件开发中扮演着至关重要的角色,它帮助开发者追踪程序运行状态,定位错误,以及进行性能分析。而Apache的log4j库是Java平台上的一个著名日志框架,提供了强大的日志管理和输出功能。...

    log4j jarjar包

    二、Log4j核心组件 1. **Logger**:日志器是Log4j的基本组件,负责接收日志事件并将其传递给适当的输出。开发者可以根据需要创建多个日志器,每个日志器可以有不同的输出配置。 2. **Appender**:Appender负责将...

    log4j简单使用

    "源码"标签暗示我们将讨论Log4j的内部机制或如何查看和理解其代码,这对于学习和定制Log4j功能很有帮助。而"工具"标签则表明Log4j是一个开发者常用的工具,它的使用和配置是提高开发效率的关键。 **压缩包文件名称...

    Log4j学习笔记和一套完整定义实例

    **Log4j学习笔记** Log4j是一款广泛应用于Java编程中的日志记录框架,由Apache软件基金会开发。它提供了一套灵活的日志记录系统,帮助开发者在开发过程中追踪应用程序的行为,便于调试、性能分析和问题排查。Log4j...

    apache-log4j-1.2.16.rar_apache log4j 1.2.16_log4j source code_lo

    这个压缩包包含了Log4j 1.2.16的源代码,对于学习和理解Log4j的工作原理以及自定义其行为非常有帮助。 在Log4j中,核心概念包括Logger、Appender、Layout和Level。Logger是日志记录的主要接口,通过它来创建和管理...

    新版本与旧版本log4j.jar包下载,附使用说明----.zip

    2. **log4j.jar**: 这是Log4j的主要库文件,包含了Log4j的API和实现。开发者将此jar包引入项目中,就可以使用Log4j提供的各种日志记录功能。新版本和旧版本的log4j.jar可能存在功能更新、性能优化、安全修复等差异,...

Global site tag (gtag.js) - Google Analytics