`
qq405371160
  • 浏览: 32426 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

log4j笔记

 
阅读更多

参考资料
short manual 

complete log4j manual

 

 

简介

Log4j的三个主要对象:

Logger:日志记录器,具有hierarchy naming rule(可继承parentancestor的日志级别),可分配日志级别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,可自行扩展,可异步执行日志操作。最常用的为DailyRollingFileAppenderRollingFileAppender。其具有可附加特性(Appender Addivity

Layout:日志输出格式(配合Appender使用),PatternLayout是使用类似C语言的printf函数的转换模式(conversion pattern)。详细配置请参考PatternLayoutAPI

配置

       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

    《Log4j笔记 第九章 封装Log4j》 在Java开发中,日志记录是一项非常重要的任务,它帮助我们追踪程序运行时的状态,定位和解决错误。Log4j是Apache组织提供的一款强大的日志框架,因其高效、灵活和可配置性而广受...

    Log4j学习笔记和一套完整定义实例

    **Log4j学习笔记** Log4j是一款广泛应用于Java编程中的日志记录框架,由Apache软件基金会开发。它提供了一套灵活的日志记录系统,帮助开发者在开发过程中追踪应用程序的行为,便于调试、性能分析和问题排查。Log4j...

    学习Log4j笔记,TXT格式

    ### Log4j 配置与应用详解 #### 一、Log4j简介 Log4j是Apache的一个开源项目,用于实现日志记录功能。通过使用Log4j,开发者能够更加灵活地控制应用程序的日志输出,包括日志信息的级别、输出目的地等。Log4j的...

    Log4j笔记.doc

    ### Log4j基础知识详解 #### 一、Log4j概览 Log4j是一个开源的日志框架,由Apache Software Foundation开发。它允许开发者根据需要控制日志信息的输出等级及去向,使得日志记录变得非常灵活。Log4j的核心组件包括...

    log4j使用笔记

    #### 四、log4j 配置详解 1. **配置文件**: - `log4j.properties` 或 `log4j.xml` 文件用于定义 log4j 的配置规则。 - 配置文件通常放置在项目的根目录或者类路径下。 - 如果未指定配置文件的位置,则 log4j 会...

    Log4j2学习log4j2.xml配置模板

    Log4j2 配置模板学习笔记 Log4j2 是 Java 语言中一种流行的日志记录工具,它提供了灵活的日志记录管理功能。下面我们将学习 Log4j2 配置模板的使用和配置。 引入 Log4j2 依赖 在使用 Log4j2 之前,需要在 Maven ...

    Log4j的学习笔记

    **Log4j学习笔记** Log4j是一款广泛应用于Java编程中的日志记录工具,由Apache软件基金会开发。它提供了一种灵活且强大的机制来记录应用的运行情况,这对于调试、性能分析、问题追踪以及系统监控至关重要。这篇学习...

    log4J学习笔记

    ### log4J学习笔记 #### 一、Apache Commons Logging与log4j及JDK Logger的关系 **Apache Commons Logging** 的设计初衷是为了提供一个简洁统一的日志接口,它并不直接实现日志功能,而是通过桥接的方式支持多种...

    log4j 学习笔记

    "log4j 学习笔记" log4j 是一个流行的 Java 日志记录工具, logger 是记录日志信息的基本单元。在 log4j 中, logger 的级别越低,记录的日志信息越详细。 Logger 的级别从低到高依次是:ALL 。 log4j 的日志记录...

    Log4j入门学习笔记

    【Log4j入门学习笔记】 Log4j是一个广泛使用的Java日志框架,旨在解决程序开发中日志记录的复杂性和可维护性问题。它提供了一种灵活的方式来控制日志信息的输出格式、输出级别和输出位置,使得在调试、监控和故障...

    Log4j 学习笔记.doc

    Log4j 是一款广泛使用的日志记录框架,它允许开发者以高效、灵活的方式记录应用程序的日志信息。在本文中,我们将深入探讨Log4j的主要组件、功能和使用方法。 首先,我们来看一下Log4j的类图。Log4j的核心组件主要...

    Log4J学习笔记

    ### Log4J学习笔记 #### 一、Log4J配置文件的学习 在深入理解Log4J之前,我们先从配置文件入手。Log4J支持多种配置文件格式,其中包括XML和Java特性文件(键=值)。这里我们将重点介绍如何使用Java特性文件作为...

    日志管理Log4j学习笔记

    ### Log4j学习笔记知识点详解 #### 一、Log4j概述 - **定义与功能**:Log4j是Apache组织推出的一个开源日志框架,主要用于控制和管理应用程序中的日志记录过程。它允许开发者非常灵活地配置日志输出的目的地(如...

    log4j学习笔记

    **Log4j 简介** Log4j 是一个广泛使用的开源日志记录框架,由 Apache 软件基金会开发。它为Java应用程序提供了一种灵活的日志记录机制,允许开发者控制日志信息的输出级别、输出目的地以及输出格式。由于其强大的...

    log4j的笔记

    Log4j 是一个广泛使用的Java日志框架,它允许开发者记录应用程序中的事件和错误信息,以便于调试、监控和日志分析。Log4j 的主要优点在于它的灵活性和可配置性,可以方便地调整日志级别,将日志输出到不同的目的地,...

    log4j 学习 笔记

    ### Log4j 学习笔记知识点详解 #### 一、Log4j 概述与架构 **Log4j** 是 **Apache** 组织提供的一个开源日志框架,旨在简化应用开发中的日志记录工作。它能够灵活地记录程序运行时的信息,并允许用户自定义日志的...

    Log学习笔记——Log4j配置笔记.md

    Log4j log for java(java的日志) 是java主流的日志框架,提供各种类型,各种存储,各种格式,多样化的日志服务。Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、...

    Log4j学习笔记

    ### Log4j学习笔记 #### 一、Log4j简介 Log4j是Apache的一个开源项目,用于实现日志功能的Java库。它允许开发者控制日志信息的生成、格式和输出目标。Log4j的强大之处在于它的灵活性和扩展性,能够适应不同层次的...

Global site tag (gtag.js) - Google Analytics