Log4J
原理以及配置的研究
<!---->
<o:p> </o:p>
在进行
Log4J
的使用过程中,我对下面的两个问题比较敏感:
<o:p> </o:p>
1、
Log4J
是如何进行工作的?
这是在
Log4J
项目中对
Log4J
的介绍中的一段话
With log4j it is possible to enable logging at runtime without modifying the application binary. The log4j package is designed so that these statements can remain in shipped code without incurring a heavy performance cost. Logging behavior can be controlled by editing a configuration file, without touching the application binary.
<o:p> </o:p>
对于
Log4J
的具体如何进行工作的原理,在
javaeye
上
buaawhl
给出了一个解释:
http://buaawhl.iteye.com/blog/6450
总结一下就是利用
JDK
提供的
new Throwable().getStackTrace()
方法返回当前运行栈的结构层次,然后对返回的调用栈的信息进行分析,找到调用该类的类的名称。(也就是Log4J自己说的Runtime期间实现Log)
<o:p> </o:p>
由于在
Log4J
中只存在一个根
Logger
,并且
Logger
之间存在继承的关系,并且我们可以在配置文件(
log4J.proerties
或者
XML
)中进行配置,可以初始化指定的
Logger
,并且对指定的
Logger
进行一些相关的配置,如设置如何进行输出,以及如何将输出进行布局。并且由于
Logger
之间会存在继承的关系(会找一个最近的
Logger
进行继承,如果没有就以根
Logger
作为父类,共享父类的配置信息),以及父子类之间初始化没有先后的顺序,所以我们可以在配置文件中,对各个程序以及不同的包中使用到
Log4j
的
Log
纪录方式进行配置。
<o:p> </o:p>
如果在同一个
APPLICATION
对相同名称的
Logger
进行调用,那么只会返回一个
Logger
实例。
2、
Log4J
会不会对系统的性能造成大的影响?
<o:p> </o:p>
这是对
Log4J
性能的一些描述,看来还是不错的,呵呵,在调整一下
Log
的等级就可以了。
On an AMD Duron clocked at 800Mhz running JDK 1.3.1, it costs about 5 nanoseconds to determine if a logging statement should be logged or not. Actual logging is also quite fast, ranging from 21 microseconds using the SimpleLayout, 37 microseconds using the TTCCLayout. The performance of the PatternLayout is almost as good as the dedicated layouts, except that it is much more flexible.
注:对于
Common Logging
和
Log4J
的关系可以参见
(其实
JCL
是一个规范,对一些
Log
工具进行了包装,我们常会使用到的具体实现还是
Log4j
,当然也可以使用其他的实现)
http://hedong.3322.org/archives/000316.html
参考资料:
http://www-128.ibm.com/developerworks/cn/java/l-log4j/index.html
使用
Log4J
进行日志操作
http://zooo.51.net/heavyz_cs/notebook/log4j.html Log4J
学习笔记(推荐)
http://www.dingl.com/view.shtml?xh=485 log4j
配置
http://hedong.3322.org/archives/000193.html
竹笋炒肉的
Log4J
学习笔记
http://forum.springside.org.cn/redirect.php?fid=3&tid=382&goto=nextoldset SpringSide
对
Log4j
的使用要点
<o:p> </o:p>
分享到:
相关推荐
这可能包括了Spring Boot的配置、MyBatis的Mapper接口和XML映射文件,以及如何通过log4jdbc-log4j2展示SQL语句的执行。在实际操作中,你可以根据这个示例来理解和学习如何在自己的项目中实现相同的功能。
配置文件是 Log4j 的核心组件之一,通过配置文件可以灵活地控制日志的输出。 Log4j 的配置方式 Log4j 提供了多种配置方式,包括: * 通过配置文件来配置 Log4j * 通过 Java 代码来配置 Log4j Log4j 的输出级别 ...
这个压缩包"Log4j及其配置.rar"包含了Log4j的jar包(log4j-1.2.15.jar)以及相关的配置文档,旨在帮助开发者理解和使用Log4j。 一、Log4j介绍 Log4j是Apache软件基金会的一个开源项目,最初由Ceki Gülcü创建。它...
**Log4j 详细配置** Log4j 是一个广泛使用的 Java 日志框架,它提供了灵活且高效的日志记录功能,适用于各种规模的应用程序。本文将深入探讨 Log4j 的配置,帮助开发者更好地理解和使用这个强大的工具。 ### 1. ...
本文将深入探讨log4j-1.2.17.jar及其配置文件,以揭示其工作原理和应用场景。 一、Log4j简介 Log4j是一个灵活且高效的日志记录库,为Java应用程序提供了丰富的日志功能。它的设计目标是提供一个能够进行调试、性能...
log4j的使用习惯,让每个类都拥有一个private static的Logger对象,用来输出该类中的全部日志信息 ,使用xml文件来完成对log4j环境的配置。在项目的main class中的静态初始化块里放log4j环境的配置代码。注意:在一...
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以在Java应用程序中控制日志打印的方式、格式以及输出的目的地。它允许开发者根据级别记录日志信息,使用户能够更加灵活地控制日志的生成。 #### 二、配置方式...
本话题将深入探讨如何使用Log4j实现多文件输出打印,以及自定义日志的配置。 首先,我们要理解Log4j的基本工作原理。Log4j的核心组件包括Logger、Appender和Layout。Logger负责生成日志事件,Appender则负责接收...
你可以打开这个项目,查看`log4j.properties`配置文件,以及`Main`类中的日志输出代码,运行程序,观察日志文件`app.log`的内容,以直观地理解Log4j的工作原理。 总结,Log4j作为Java日志管理的重要工具,通过配置...
这个压缩包包含了Log4j 1.2.16的源代码,对于学习和理解Log4j的工作原理以及自定义其行为非常有帮助。 在Log4j中,核心概念包括Logger、Appender、Layout和Level。Logger是日志记录的主要接口,通过它来创建和管理...
本工程基于Eclipse IDE,配置了一个简单的Log4j设置,实现了每天自动将日志输出到一个特定命名格式的文件中,即“XXX_年月日时分.log”。下面我们将详细解析这个配置及其工作原理。 1. **Log4j介绍**: Log4j是一...
**标题与描述解析** 标题提及的是“新版本与旧版本log4j.jar包下载”,这表明资源中可能包含了不同版本的log4j日志库...通过理解Log4j的工作原理和配置方法,开发者可以有效地利用日志信息来提升代码质量和调试效率。
首先,我们需要理解Log4j的工作原理。Log4j主要包括三个核心组件:Logger(日志器)、Appender(输出器)和Layout(布局)。Logger负责创建和管理日志记录,Appender决定日志信息输出到哪里,而Layout则控制日志信息...
本文将重点围绕Log4j 1.2.17版本展开,详细介绍其核心概念、使用方法以及配置细节。 1. **Log4j简介** Log4j是Apache组织提供的一款开源日志框架,最初由Ceki Gülcü设计。它为Java应用程序提供了丰富的日志功能...
Apache Log4j 是一个广泛使用的Java日志框架,它的核心功能是记录应用程序中的事件和错误信息,便于跟踪问题、分析性能以及调试。Log4j 提供了一种灵活、高效的日志记录机制,允许开发者定制日志输出的方式、位置和...
本文将深入探讨Spring Boot集成的Log4j2框架,解析其工作原理、配置方式以及实际应用。 一、Log4j2简介 Log4j2是Apache基金会开发的一个日志处理框架,它是Log4j的升级版,提供了更高效的性能和丰富的功能。Log4j2...
本文将详细介绍Log4j的配置方法,并通过实例帮助初学者理解其工作原理。 ### 1. Log4j概述 Log4j的主要目标是为应用程序提供一种灵活且高效的日志记录机制。它包括三个核心组件:Logger(日志器)、Appender(输出...
首先,我们要理解Log4j的工作原理。Log4j允许开发者自定义日志输出的方式,包括输出到控制台、文件、数据库等。它使用了`QuietWriter`类来写入日志,`QuietWriter`继承自`FilterWriter`,而`FilterWriter`又继承自`...
配置Log4j主要通过`log4j.properties`或`log4j.xml`文件完成,其中定义了日志级别、appender(日志输出目标)和layout(日志格式)。例如,你可以为不同的类或包设置不同的日志级别,以获取所需级别的详细信息。 在...
本篇文章将详细探讨一个感觉还不错的Log4j配置文件,旨在帮助读者深入理解其工作原理和配置细节。 Log4j的核心在于其配置文件,通常命名为`log4j.properties`,它是通过Apache Log4j API定义日志输出格式、级别和...