Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。
1. Log4j配置文件的语法
配置根Logger : log4j.rootLogger = [ level ] , appenderName, appenderName, …
level 是日志记录的优先级 , logger的level越低,表示该logger越详细 ; logging request的level越高,表示该logging request越优先输出 . appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地.
DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的
INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程
WARN level表明会出现潜在错误的情形
ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行
FATAL level指出每个严重的错误事件将会导致应用程序的退出
ALL Level是最低等级的,用于打开所有日志记录
OFF Level是最高等级的,用于关闭所有日志记录
Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
2. 代码中使用Log4j
i. 获取日志记录器,这个记录器将负责控制日志信息.
语法为: public static Logger getLogger( String name),通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器.
a . 用同名参数调用Logger.getLogger(String name)将返回同一个logger的引用。故可以在一个地方配置logger,在另外一个地方获得配置好的logger,而无须相互间传递logger的引用。即可在配置文件中配置log4j.logger.ID_LOG=DEBUG,A2 而private static Logger debug = Logger.getLogger("ID_LOG");将返回同一个logger的引用.
b. logger的创建可以按照任意的顺序,即,父logger可以后于子logger被创建。log4j将自动维护logger的继承树。
ii. 配置Log4j环境.
语法为: BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。 PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。 DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。
iii. 插入记录信息
语法为:
Logger.debug ( Object message ) ;
Logger.info ( Object message ) ;
Logger.warn ( Object message ) ;
Logger.error ( Object message ) ;
3. 输出格式
# %c 输出日志信息所属的类别的全名
# %d 输出日志时间点的日期或时间,指定格式的方式:%d{yyy-MM-dd HH:mm:ss }
# %l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类别的第几行
# %m 输出信息,如log(message)中的message。
# %n 输出一个列尾符号
# %p 输出优先阶层, 即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,即为DEBUG
# %r 输出自应用启动到输出该日志信息所耗费的毫秒数
# %t 输出产生该日志事件的线程名
# %f 输出日志信息所属的类别的类别名
Log4jDemo.java 代码
java 代码
- package com.nikee.log4j;
-
- import org.apache.log4j.Logger;
- import org.apache.log4j.PropertyConfigurator;
-
- public class Log4jDemo {
- public static void main(String argv[]) {
-
- PropertyConfigurator.configure("./src/com/nikee/log4j/log4j.properties");
-
-
- Logger logger = Logger.getLogger(Log4jDemo.class);
-
-
- logger.info("This is an info.");
- logger.warn("This is a warning.");
- logger.error("This is an error.");
- logger.fatal("This is a fatal error.");
- }
- }
log4j.properties文件
log4j.rootLogger=INFO, A1, A2
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n
# A2 is set to be a file
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M] %m%n
log4j.appender.A2.File=./src/com/nikee/log4j/Log4jDemo.log
Log4j的编码习惯
1. 让每个类都拥有一个private static的Logger对象,用来输出该类中的全部日志信息
2. 使用xml文件来完成对log4j环境的配置。在项目的main class中的静态初始化块里放log4j环境的配置代码。注意:在一个项目中,log4j环境只需要被配置一次,而不是在每个使用了logger的类里都需要调用一次
3. 用MyClass.class作为参数创建该类的静态Logger对象
分享到:
相关推荐
**Log4j简介** Log4j是Apache组织开发的一款强大的日志组件,它允许开发者对应用程序进行日志输出的控制。Log4j包括三个核心部分:配置器(Configurator)、日志记录器(Logger)和布局器(Layout)。配置器用于设置...
### Log4j2简介 Log4j2是Apache软件基金会推出的日志框架,它是Log4j 1.x的重构版本,旨在提供更为高效且灵活的日志解决方案。与Log4j 1.x相比,Log4j2在设计上进行了重大改进,并解决了Logback等其他日志框架中...
Log4j是一款广泛使用的日志记录框架,尤其在Java开发中极为常见。它是由Ceki Gülcü在2002年开发的,其版本 jakarta-log4j-1.2.8 提供了详细的文档。这个框架允许开发者以灵活的方式输出不同级别的日志信息,如...
下面我们将从配置文件类型、核心JAR包、文件渲染和Log调用四个方面来比较Log4j和Log4j2的区别。 配置文件类型 Log4j通过一个.properties文件作为主配置文件,而Log4j2则弃用了这种方式,采用的是.xml、.json或者....
log4j的使用习惯,让每个类都拥有一个private static的Logger对象,用来输出该类中的全部日志信息 ,使用xml文件来完成对log4j环境的配置。在项目的main class中的静态初始化块里放log4j环境的配置代码。注意:在一...
一、Log4j简介 Log4j是由Apache软件基金会开发的一个开源日志组件,主要为Java应用程序提供日志服务。它的设计理念是让日志输出变得简单、灵活且可配置,同时提供了丰富的API,使得开发者可以根据需求定制日志输出...
一、Log4j简介 Log4j是一个开源的日志组件,由Ceki Gülcü于20世纪90年代末创建。它的主要目标是提供一个灵活、高性能的日志记录框架,使得开发者能够轻松地控制日志信息的输出级别、格式和目的地。Log4j不仅支持...
#### 一、log4j简介与重要性 Log4j是一种广泛使用的开源日志框架,由Apache软件基金会维护。它主要用于记录Java应用程序的运行时信息,帮助开发者追踪应用程序的行为、调试问题以及进行性能分析。log4j的主要优势...
1. **Log4j简介** Log4j是Apache组织提供的一款开源日志框架,最初由Ceki Gülcü设计。它为Java应用程序提供了丰富的日志功能,包括日志级别控制、输出格式定制、多种输出目的地选择等。1.2.17是Log4j的一个稳定...
Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中轻松地记录各种级别的日志信息,如DEBUG、INFO、WARN、ERROR等。在2021年底,一个重大的安全漏洞(CVE-2021-44228)被发现在Log4j2的早期版本中,...
一、Log4j简介 Log4j是由Apache软件基金会开发的一个开源日志组件,主要服务于Java平台。它的设计目标是提供一个灵活且高效的日志记录系统,允许开发者自定义日志输出的级别、格式和目的地。Log4j的灵活性体现在它...
一、Log4j简介 Log4j是一个用于生成日志的灵活框架,它提供了丰富的配置选项,允许开发者根据需求调整日志级别、格式和输出目的地。Log4j-1.2.17.jar是该版本的二进制文件,包含了所有必要的类库,可以直接引入Java...
针对Log4j 2 远程代码执行漏洞,需要用到的升级资源包,适用于maven资源库,包括log4j,log4j-core,log4j-api,log4j-1.2-api,log4j-jpa等全套2.15.0 maven资源库jar包。如果是maven本地仓库使用,需要将zip包解压...
一、Log4j简介 Log4j是一个灵活且高效的日志记录库,为Java应用程序提供了丰富的日志功能。它的设计目标是提供一个能够进行调试、性能监测、系统管理和安全控制的工具。Log4j的核心组件包括Logger(日志器)、...
#### 一、Log4J简介 Log4J是Apache的一个开源项目,用于提供灵活的日志记录功能。通过它,开发者能够控制日志信息的输出级别、输出目的地(控制台、文件等)、格式化方式等。本文将围绕一份示例配置文件来详细介绍...
**一、Log4j简介** Log4j是基于组件的日志框架,它提供了一种灵活的方式来记录应用程序中的事件。这些事件可以是错误、警告、调试信息等。Log4j的核心组件包括Appender(输出目标)、Layout(格式化输出)和Logger...
1. **Log4j简介** - Log4j是一个轻量级的日志记录工具,具有强大的可配置性和灵活性。 - 它提供了多种级别的日志记录,如DEBUG、INFO、WARN、ERROR和FATAL,便于控制日志信息的输出。 - Log4j由三个主要组件构成...
apache-log4j-1.2.15.jar, apache-log4j-extras-1.0.jar, apache-log4j-extras-1.1.jar, apache-log4j.jar, log4j-1.2-api-2.0.2-javadoc.jar, log4j-1.2-api-2.0.2-sources.jar, log4j-1.2-api-2.0.2.jar, log4j-...
#### 一、Log4j 简介与特性 在当前强调可重用组件的软件开发环境中,Apache 的 Log4j 为开发者提供了强大的日志管理工具。Log4j 不仅开源免费,还具备高度的灵活性与可配置性,支持多种日志输出目的地(例如控制台...