前天在在《问答》里提了一个关于Log4j的问题。起因在于一个网上很流行的Log4j配置文件,不例外的我也采用了
其中开始的一段是这样的
log4j.rootLogger=DEBUG,CONSOLE,A1,im
log4j.addivity.org.apache=true
# 应用于控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=DEBUG
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5
%x - %m%n
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRI
TY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n
上面蓝色部分就是我困惑的地方。addivity是做什么用的呢?
一番查询后无果,甚至翻了《log4j The Complete Manual》,于是有了在《问答》中的提问。
其实在《log4j The Complete Manual》中是有些说明的,由于个人的理解力有些差,暂时还没明白。
可是就是“不死心”啊,于是今天又去Google里搜。奇迹出现了……
我搜的是“关于Log4j中addivity的含义”,象通常一样的列出了一系列的相关链接。
不经意间点开一个查看,在页面搜索"addivity",竟然没定位到google简要里的位置,觉得很奇怪。于是返回google看个究竟。揉揉眼睛才看清定位的地方是"additivity"不是"addivity"。
很快关于"additivity"有了答案。
它是 子Logger 是否继承 父Logger 的 输出源(appender) 的标志位。具体说,默认情况下子Logger会继承父Logger的appender,也就是说子Logger会在父Logger的appender里输出。若是additivity设为false,则子Logger只会在自己的appender里输出,而不会在父Logger的appender里输出。
那“addivity”呢,如何做答呢?我分析应该是这个原始 log4j配置文件 开发者的笔误吧。间接的证据就是对于"log4j.addivity.org.apache"或是"log4j.addivity"在Google中的搜索99%出自《一个比较全Log4j配置文件》类似的文章,而且引用的都是一个配置文件。而对于"log4j.additivity.org.apache"或是"log4j.additivity"的搜索,会得出很多不同的文章和讲解。
好了,不管addivity了,我相信是原创者的笔误了。由于例子的经典,大家在传递过程中忽略了瑕疵。
分享到:
相关推荐
log4j和log4j2日志应用文档 Log4j是一种广泛使用的Java日志框架,提供了灵活的日志记录和管理机制。本文档将详细介绍Log4j和Log4j2的日志应用,包括日志使用和要点相关内容介绍。 配置文件解析 Log4j配置文件的...
Log4j.properties 文件是 Log4j 框架的核心配置文件,用于设置记录器的级别、存放器和布局。通过配置,可以创建出 Log4J 的运行环境。下面是 Log4j.properties 文件的详细配置解释。 配置文件格式 Log4j 配置文件...
log4j.additivity.DEBUG2=false log4j.category.DEBUG2=DEBUG2, CustomAppender log4j.appender.DEBUG2=org.apache.log4j.FileAppender log4j.appender.DEBUG2.File=debug2.log log4j.appender.DEBUG2.layout=org....
总结来说,`log4j.dtd`是Log4j框架配置的核心组成部分,它定义了配置文件的结构和元素,使得开发者能够根据项目需求灵活地配置日志行为,包括选择不同的日志输出目的地、定制日志格式以及设置日志级别。通过理解和...
log4j.additivity.ttzl=false ``` - **日志级别**:从低到高分别为 TRACE、DEBUG、INFO、WARN、ERROR、FATAL。默认级别为 DEBUG。 - **Appender**:日志输出的目标。可以配置输出到控制台、文件等。 - **Layout**:...
而Log4j2则是Log4j的后续版本,它在性能和功能上都进行了改进,例如异步日志记录和更高级的配置支持等。在log4j2.x中,尽管还保留了与Log4j 1.x的兼容性,但建议开发者在可能的情况下使用Log4j2的新特性。
了解和掌握Log4j的常用配置对于Java开发人员来说至关重要,因为它可以帮助我们调试代码、追踪错误以及监控系统运行状态。下面,我们将深入探讨Log4j的基本概念、配置选项以及一个简单的Demo。 ### 1. Log4j基本概念...
log4j.additivity.org.apache.ibatis=false ``` 这里特别配置了iBATIS的日志级别为DEBUG,以便输出SQL执行情况。 3. **部署与测试**:将`log4j.properties`文件放入应用的资源目录,例如`WEB-INF/classes`。...
通过对Log4j配置文件的理解和自定义日志类的编写,我们可以实现对Struts、iBatis等框架的日志输出控制,同时也能根据项目需求进行灵活的日志输出。这种扩展不仅可以提高系统的可维护性和可调试性,还能有效地帮助...
- `log4j.additivity`:控制日志是否同时输出到自身和其父Logger的Appender。如果设置为`false`,则只输出到当前Logger指定的Appender。 正确配置Log4j.properties文件能够帮助开发者更好地管理和监控应用程序的...
log4j.additivity.org.apache=true # 数据库相关的配置 log4j.appender.JDBC=org.apache.log4j.jdbc.JDBCAppender log4j.appender.JDBC.driver=oracle.jdbc.driver.OracleDriver log4j.appender.JDBC.URL=jdbc:...
本文将深入解析Log4j的配置文件属性、日志级别、布局方式以及参数设置等核心知识点,帮助你更好地理解和利用这个强大的工具。 一、配置文件属性解释 Log4j的核心配置文件通常是`log4j.properties`或`log4j.xml`,它...
- `log4j.addivity.org.apache=true`:这里应该是`log4ity.additivity.org.apache=true`,表示`org.apache`包下的日志记录器会继承根日志记录器的配置。 **2. 控制台输出配置** - `log4j.appender.CONSOLE=org....
- **自定义日志等级**:可以通过定义新的日志级别来满足特殊需求,例如`log4j.additivity.myCategory=false`可以防止日志信息在父类别和子类别之间重复。 - **异步日志记录**:通过使用`AsyncAppender`可以提高...
Log4j是一款广泛使用的Java日志框架,它提供了灵活的日志配置和丰富的功能。这篇博文主要探讨的是如何配置Log4j以改变日志输出的位置。 首先,我们要理解Log4j的核心配置文件——`log4j.properties`。这个文件使用...
在本文中,我们将详细探讨Log4j的配置文件,包括.properties和.xml两种格式,并介绍其核心配置项及其作用。 ### 1. 属性文件(.properties) #### 1.1 log4j.threshold `log4j.threshold` 设定了日志输出的最低级别...
log4j.additivity.ERROR_LOGGER=false log4j.logger.ERROR_LOGGER=ERROR, ERROR_FILE ``` 这里,`ERROR_LOGGER`是一个自定义的logger名称,你可以根据实际需求进行设定。 **6. 使用log4j** 在代码中,你可以通过`...
- `log4j.additivity.org.apache=true`: 此配置表示 org.apache 包下的所有类的日志输出都会按照默认的 rootLogger 的配置进行记录,而不是只按照 org.apache 下的单独配置。 **2. Socket Appender** - 用于通过...
Log4j是一款广泛使用的日志框架,它允许开发者自定义日志输出的方式,包括输出路径、日志级别和格式。在某些情况下,可能需要将不同类型的日志输出到不同的文件中,以方便管理和分析。本文将详细讲解如何使用Log4j...