Log4J
学习笔记
l
什么是log4j?
Log4J
是Apache
的一个开源项目,是一个在我们编写代码过程提供实现日志输出功能的包。Log4J
可以实现通过配置的方式日志输出、日志目的地定义、日志格式定义
等功能,有效的管理日志。在使用Log4J
之前先看一下几个概念:
l
log4j
基本概念
在使用Log4j
之前,先看看3
个基本概念:Looger,Appender,PatternLayout
三者关系如下:
图1:Logger,Appender,PatternLayout关系图
1.Logger
:
日志输出器,提供输出日志功能。
Log4J
内置了7
中Log
等级,从低到高分别为ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF
。每个Logger
都要默认定义一个等级。同时对于每一条要输出的日志也定义了等级,不同等级的日志用不同的方法调用,共5
种等级(DEBUG, INFO, WARN, ERROR, FATAL),
通过如下方法写出日志:
Logger logger=Logger.getLogger(
“logname
”);
logger.info(“…”);
logger.error(“…”);
logger.debug(“…”);
logger.warn(“…”);
logger.fatal(“…”);
如果日志的等级高于等于日志输出器的等级,那么该日志才会被写入。
2.Appender
:
日志目的地,用来定义日志目的地对象。
在日志写出之前还必须先定义好日志器对应的日志目的地。一个日志器可以定义多个目的地。日志目的地有多种类型。其结构如下:
图2:Appender结构图
其中Appender
是顶层接口,下面定义了很多种Appender
,几种常见的Appender
解释如下:
ConsoleAppender:
控制台作为日志输出地
FileAppender:
文件作为日志输出地
RollingFileAppender:
日志文件的大小受到限制,当内容超出最大的限制时,该文件将向上滚动。
其他的类型笔者也未曾深入研究。
3.PatternLayout
:日志布局,用于定义日志格式。
定义日志布局,指定在日志输出到目的地的时候以怎样的格式被输出。
l
3.
如何使用Log4J
无论你是否创建
logger
,
Log4J
都会默认创建一个
RootLogger
,该日志器可以通过
Logger.getRootLogger()
获得。所以的
logger
都将继承该根
Logger.
在使用
Log4j
进行日志记录之前必须先初始化
Log4J
配置,配置可以包含如下工作:
定义日志器
logger
,如:
定义指定
Layout
的
appender
定义
logger
对应的
appender
。
Log4j
可以通过如下两种方式进行初始化
a.
默认配置
org.apache.log4j.BasicConfigurator
.configure
();
它将完成如下工作:
-
用默认
pattern
创建
PatternLayout
对象
p
:
PatternLayout p = new PatternLayout("%-4r[%t]%-5p%c%x - %m%n");
-
用
p
创建
ConsoleAppender
对象
a
,目标是
system.out
,标准输出设备:
ConsoleAppender a = new ConsoleAppender(p,ConsoleAppender.SYSTEM_OUT);
-
为
root logger
增加一个
ConsoleAppender p
:
rootLogger.addAppender(p);
-
把
root logger
的
log level
设置为
DEBUG
级别:
rootLogger.setLevel(Level.DEBUG);
b.
自定义配置
这个是比较推荐也比较常用的一种配置。可以将配置定义在程序之外,在程序之外控制日志系统的运行。主要通过
XML
文件配置。由
org.apache.log4j.xml.DOMConfigurator.configure()
方法读入配置并初始化。
org/apache/log4j/xml/log4j.dtd
里定义了
XML
文件的语法。下面简单介绍如何在
XML
文件里定义
Logger
,
Appender
,
root
配置及两者关系等。
定义
Logger(
注:同名的
logger
在
Log4J
里只会有一个对象
。
)
:
以上是关于
Log4J
的一些概念和使用介绍。下面举两个简单例子说明:
例子
1
:
使用
BasicConfigurator.congigure()
初始化
Log4JTest.java:
例子
2
:
使用
XML
文件配置
Log4j_config.XML:
Log4JXMLTest.java:
以上是关于
Log4J
的一些基本介绍,笔者认为日志对一个应用的作用应该是巨大的,当然也会带来一定的系统开销,但是这是值得的。同时
Log4J
提供的可配置的日志系统管理,方便易用,推荐大家使用。
分享到:
相关推荐
### Log4j与Commons Logging:深入理解与实践 #### 引言 在软件开发过程中,日志记录是一项至关重要的任务,它不仅帮助开发者在开发阶段调试代码,也在生产环境中帮助运维人员监控系统状态,及时发现并解决问题。...
**Log4j学习笔记** Log4j是一款广泛应用于Java编程中的日志记录工具,由Apache软件基金会开发。它提供了一种灵活且强大的机制来记录应用的运行情况,这对于调试、性能分析、问题追踪以及系统监控至关重要。这篇学习...
总结来说,Log4j提供了一套强大的日志管理框架,通过自定义Appender和PrintStream,我们可以轻松地将`System.out.println()`的输出整合到Log4j中,从而实现日志的集中管理和分析。这对于大型项目或者需要严格监控的...
总结来说,Log4j作为一个强大的日志框架,其强大的功能和高度可定制性使得它在Java项目中占据着重要地位。正确理解和使用log4j-1.2.16.jar,不仅可以提升开发效率,还能为项目的稳定性和维护性提供有力保障。通过...
### Log4j 学习笔记知识点详解 #### 一、Log4j 概述与架构 **Log4j** 是 **Apache** 组织提供的一个开源日志框架,旨在简化应用开发中的日志记录工作。它能够灵活地记录程序运行时的信息,并允许用户自定义日志的...
总结来说,Log4j-1.2.9是一个重要的日志工具,它提供了灵活的日志记录机制,便于调试、监控和问题排查。通过学习和实践提供的实例,开发者可以更好地掌握其用法,提高项目的可维护性和可追溯性。不过,随着技术的...
### Log4J 最简入门详解 #### 一、Log4J简介与基本概念 Log4J是一款非常流行的Java日志框架,由Apache...通过学习这些基础内容,开发者可以轻松地在自己的项目中集成Log4J,从而更好地管理和调试应用程序的日志信息。
Log4j是一款广泛应用于Java平台的日志记录框架,它提供了灵活且...通过学习和掌握Log4j,开发者可以提高代码的可维护性和问题定位的效率。在实际应用中,根据项目需求调整配置文件,可以实现对日志的精细化管理和控制。
### log4J学习笔记 #### 一、Apache Commons Logging与log4j及JDK Logger的关系 **Apache Commons Logging** 的设计初衷是为了提供一个简洁统一的日志接口,它并不直接实现日志功能,而是通过桥接的方式支持多种...
通过本文档的学习,我们了解了log4j配置文件的基本结构和关键配置项的含义。正确配置log4j可以帮助开发者高效地管理和分析程序运行过程中的信息,对于软件开发和维护具有重要意义。希望初学者能够结合实际项目需求,...
### Log4j入门详解 #### 1. Log4j简介 ...总结而言,Log4j是一个非常强大的日志管理工具,通过合理的配置可以极大地提高日志记录的效率和可读性。无论是初学者还是经验丰富的开发者,都能从中受益。
**标题与描述解析** 标题“log4j.rar log4j使用...通过阅读提供的`log4j使用方法.doc`文档,你可以更深入地学习如何在你的项目中有效地利用log4j。而`log4j.rar`文件则可能包含实际操作的例子,可以帮助你实践所学。
总结来说,Apache Log4j 2.3 和 Commons Logging 1.2 在Java Web开发中扮演着重要角色,它们帮助开发者方便地记录、管理和分析应用程序的日志,提升开发效率和问题排查能力。这两个库的结合使用,能够实现日志系统的...
总结来说,log4j 1.2.15的源码学习对于Java开发者而言是一次宝贵的实践机会,能够帮助我们了解日志框架的设计思路,提升解决问题的能力。通过对源码的阅读和理解,我们可以更好地利用log4j,同时也能为未来的日志...
- 通过对`log4j`的基本概念、主要组件以及配置方法的学习,我们可以有效地利用`log4j`来管理项目的日志记录需求,提高开发效率并确保应用稳定运行。 #### 11. 附录 - **参考文档**:列出了一些相关的技术文档和资料...
**正文** 日志系统在软件开发中扮演着至关重要的角色,它可以帮助开发者追踪程序...在"log4j日志打印demo"中,你将学习到如何设置Log4j以实现控制台和SD卡(针对Android)的日志输出,从而在实际开发中更加得心应手。
**标题与描述解析** ...通过Eclipse工程文件,学习者可以深入理解Log4j的工作原理,以及如何配置和使用它来适应不同场景的需求。这个实例工程为开发者提供了一个实践Log4j功能的平台,有助于提高日志管理能力。
**日志系统的重要性** 在软件开发中,日志系统扮演着至关重要的角色。...深入学习和理解Log4j,能够极大地提高你的开发效率和问题排查能力。在实践中不断探索,你会发现更多Log4j的高级特性和应用场景。
总结来说,phplog4j是一个PHP的日志管理工具,它可能借鉴了Java Log4j的设计理念,提供了丰富的日志记录功能。源代码的提供使得开发者能够自定义和扩展其功能,满足特定项目需求。通过博客文章,我们可以学习如何...