参考资料
short manual
简介
Log4j的三个主要对象:
Logger:日志记录器,具有hierarchy naming rule(可继承parent或ancestor的日志级别),可分配日志级别TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF, ALL
Appender:日志请求的输出目的地(in log4j’s speak, an output destination is and Appender.),当前包括console, files, GUI componentt, remote socket servers, JMS, NT Event Loggers, and Unix syslog deamons,可自行扩展,可异步执行日志操作。最常用的为DailyRollingFileAppender及RollingFileAppender。其具有可附加特性(Appender Addivity)
Layout:日志输出格式(配合Appender使用),PatternLayout是使用类似C语言的printf函数的转换模式(conversion pattern)。详细配置请参考PatternLayout的API。
配置
Log4j的配置文件可以是XML格式(使用DOMConfigurator完成配置)或properties格式(使用PropertyConfigurator完成配置)
例子一:Log4j默认读取类路径根目录下log4j.properties完本配置工作
1、在类根目录下添加log4j.properties配置文件
###根日志器 log4j.rootLogger=, A1, A2, A3 ###定义名为A1的输出端的类型为控制台 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d [defaultconfig file log] %5p [%t] %c{1}.%M %L - %m%n ###定义名为A2的输出端的类型为指定大小的日志文件 ###由于其最多只能 log4j.appender.A2=org.apache.log4j.RollingFileAppender log4j.appender.A2.Encoding=UTF-8 #已经生成的日志文件最大数目,出于性能考虑不要超过10,默认为1 #log4j.appender.A2.MaxBackupIndex=10 #MaxFileSize default 10MB (10*1024*1024) log4j.appender.A2.MaxFileSize=1KB log4j.appender.A2.File=C:/A2.log log4j.appender.A2.layout=org.apache.log4j.PatternLayout log4j.appender.A2.layout.ConversionPattern=%d [default config file log] %5p [%t] %c{1}.%M %L - %m%n ###定义名为A3的输出端的类型为每天产生一个日志文件 ###DailyRollingFileAppender可控制到年月日、时分秒 log4j.appender.A3=org.apache.log4j.DailyRollingFileAppender log4j.appender.A3.File=C:/A3.log log4j.appender.A3.DatePattern='.'yyyy-MM-dd log4j.appender.A3.layout=org.apache.log4j.PatternLayout log4j.appender.A3.layout.ConversionPattern=%d [default config file log] %5p [%t] %c{1}.%M %L - %m%n
2 测试代码如下:
package personal.lql.example; import org.apache.log4j.Logger; /** * 例子:默认读取classpath根目录配置文件 * @author 202625 * */ public class UseDefaultLocationConfigFile { public static final Logger log = Logger .getLogger(UseDefaultLocationConfigFile.class); public static void main(String[] args) { log.debug("using default location log4j.properties test!"); } }
例子二:指定目录下配置文件的配置
将log4j.properties配置文件放置在测试类文件同目录
测试代码
package personal.lql.example; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; /** * 例子:读取指定目录配置文件 * * @author 202625 * */ public class UseSpecifiedConfigFile { static final Logger log = Logger.getLogger(UseSpecifiedConfigFile.class); public static void main(String[] args) { //读取特定URL内容完成配置 PropertyConfigurator.configure(UseSpecifiedConfigFile.class .getClassLoader().getResource("personal/lql/example/log4j.properties")); log.debug("using specified location log4j.properties test!"); int i = 1; int[] arrayI = {0,1}; //先判断能否输出日志再输出 if(log.isInfoEnabled()){ log.info("start " + i + arrayI[1] + "end!!!"); } } }
配置文件:
###根日志器 log4j.rootLogger=, A1, A2, A3 ###定义名为A1的输出端的类型为控制台 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d [specified config file log] %5p [%t] %c{1}.%M %L - %m%n ###定义名为A2的输出端的类型为指定大小的日志文件 ###由于其最多只能 log4j.appender.A2=org.apache.log4j.RollingFileAppender log4j.appender.A2.Encoding=UTF-8 #已经生成的日志文件最大数目,出于性能考虑不要超过10,默认为1 #log4j.appender.A2.MaxBackupIndex=10 #MaxFileSize default 10MB (10*1024*1024) log4j.appender.A2.MaxFileSize=1KB log4j.appender.A2.File=C:/A2.log log4j.appender.A2.layout=org.apache.log4j.PatternLayout log4j.appender.A2.layout.ConversionPattern=%d [specified config file log] %5p [%t] %c{1}.%M %L - %m%n ###定义名为A3的输出端的类型为每天产生一个日志文件 ###DailyRollingFileAppender可控制到年月日、时分秒 log4j.appender.A3=org.apache.log4j.DailyRollingFileAppender log4j.appender.A3.threshold=INFO log4j.appender.A3.File=C:/A3.log log4j.appender.A3.DatePattern='.'yyyy-MM-dd log4j.appender.A3.layout=org.apache.log4j.PatternLayout log4j.appender.A3.layout.ConversionPattern=%d [specified config file log] %5p [%t] %c{1}.%M %L - %m%n
日志级别设置:
1、设置根日志级别
###根日志器 log4j.rootLogger=DEBUG, A1, A2, A3
2、设置对应Appender日志级别
log4j.appender.A3=INFO
注意事项
1、日志转换模式%C是输出完整的日志类名,生成调用日志类信息会比较慢,因此最好不要使用,除非速度不是问题。
2、日志转换模%l是输出日志事件发生位置,包括类目名、发生线程,在代码中的行数,速度很慢,因此最好不要使用。
3、日志记录内容如果开销较大,需先判断是否可输出,例如,下面的输出内容拼装开销比较大,因为不管是否输出日志,拼装都会完成计算,所以最好先前判断能否输出
int i = 1;
int[] arrayI = {0,1};
//先判断能否输出日志再输出
if(log.isInfoEnabled()){
log.info("start " + i + arrayI[1] + "end!!!");
}
相关推荐
《Log4j笔记 第九章 封装Log4j》 在Java开发中,日志记录是一项非常重要的任务,它帮助我们追踪程序运行时的状态,定位和解决错误。Log4j是Apache组织提供的一款强大的日志框架,因其高效、灵活和可配置性而广受...
**Log4j学习笔记** Log4j是一款广泛应用于Java编程中的日志记录框架,由Apache软件基金会开发。它提供了一套灵活的日志记录系统,帮助开发者在开发过程中追踪应用程序的行为,便于调试、性能分析和问题排查。Log4j...
### Log4j 配置与应用详解 #### 一、Log4j简介 Log4j是Apache的一个开源项目,用于实现日志记录功能。通过使用Log4j,开发者能够更加灵活地控制应用程序的日志输出,包括日志信息的级别、输出目的地等。Log4j的...
### Log4j基础知识详解 #### 一、Log4j概览 Log4j是一个开源的日志框架,由Apache Software Foundation开发。它允许开发者根据需要控制日志信息的输出等级及去向,使得日志记录变得非常灵活。Log4j的核心组件包括...
#### 四、log4j 配置详解 1. **配置文件**: - `log4j.properties` 或 `log4j.xml` 文件用于定义 log4j 的配置规则。 - 配置文件通常放置在项目的根目录或者类路径下。 - 如果未指定配置文件的位置,则 log4j 会...
Log4j2 配置模板学习笔记 Log4j2 是 Java 语言中一种流行的日志记录工具,它提供了灵活的日志记录管理功能。下面我们将学习 Log4j2 配置模板的使用和配置。 引入 Log4j2 依赖 在使用 Log4j2 之前,需要在 Maven ...
**Log4j学习笔记** Log4j是一款广泛应用于Java编程中的日志记录工具,由Apache软件基金会开发。它提供了一种灵活且强大的机制来记录应用的运行情况,这对于调试、性能分析、问题追踪以及系统监控至关重要。这篇学习...
### log4J学习笔记 #### 一、Apache Commons Logging与log4j及JDK Logger的关系 **Apache Commons Logging** 的设计初衷是为了提供一个简洁统一的日志接口,它并不直接实现日志功能,而是通过桥接的方式支持多种...
"log4j 学习笔记" log4j 是一个流行的 Java 日志记录工具, logger 是记录日志信息的基本单元。在 log4j 中, logger 的级别越低,记录的日志信息越详细。 Logger 的级别从低到高依次是:ALL 。 log4j 的日志记录...
【Log4j入门学习笔记】 Log4j是一个广泛使用的Java日志框架,旨在解决程序开发中日志记录的复杂性和可维护性问题。它提供了一种灵活的方式来控制日志信息的输出格式、输出级别和输出位置,使得在调试、监控和故障...
Log4j 是一款广泛使用的日志记录框架,它允许开发者以高效、灵活的方式记录应用程序的日志信息。在本文中,我们将深入探讨Log4j的主要组件、功能和使用方法。 首先,我们来看一下Log4j的类图。Log4j的核心组件主要...
### Log4J学习笔记 #### 一、Log4J配置文件的学习 在深入理解Log4J之前,我们先从配置文件入手。Log4J支持多种配置文件格式,其中包括XML和Java特性文件(键=值)。这里我们将重点介绍如何使用Java特性文件作为...
### Log4j学习笔记知识点详解 #### 一、Log4j概述 - **定义与功能**:Log4j是Apache组织推出的一个开源日志框架,主要用于控制和管理应用程序中的日志记录过程。它允许开发者非常灵活地配置日志输出的目的地(如...
**Log4j 简介** Log4j 是一个广泛使用的开源日志记录框架,由 Apache 软件基金会开发。它为Java应用程序提供了一种灵活的日志记录机制,允许开发者控制日志信息的输出级别、输出目的地以及输出格式。由于其强大的...
Log4j 是一个广泛使用的Java日志框架,它允许开发者记录应用程序中的事件和错误信息,以便于调试、监控和日志分析。Log4j 的主要优点在于它的灵活性和可配置性,可以方便地调整日志级别,将日志输出到不同的目的地,...
### Log4j 学习笔记知识点详解 #### 一、Log4j 概述与架构 **Log4j** 是 **Apache** 组织提供的一个开源日志框架,旨在简化应用开发中的日志记录工作。它能够灵活地记录程序运行时的信息,并允许用户自定义日志的...
Log4j log for java(java的日志) 是java主流的日志框架,提供各种类型,各种存储,各种格式,多样化的日志服务。Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、...
### Log4j学习笔记 #### 一、Log4j简介 Log4j是Apache的一个开源项目,用于实现日志功能的Java库。它允许开发者控制日志信息的生成、格式和输出目标。Log4j的强大之处在于它的灵活性和扩展性,能够适应不同层次的...