Java日志工具之Log4J

Log4J与java.util.logging.Logger的使用方式出奇的相似,因此如果先看这篇文章《Java日志工具之java.util.logging.Logger》在来用Log4J简直是水到渠成。

与java.util.logging.Logger的共性与不同

看看Log4J与java.util.logging.Logger的共性和不同吧:

  1. Log4J也是通过工厂方法获取Logger对象;
  2. Log4j的的Appender对等于logging.Logger的handler,都有控制台、文件等方式;
  3. Log4J的Layout对等于logging.Logger的Formatter;
  4. Log4J和logging.Logger都使用名称空间和继承关系;
  5. Log4J没有默认的Appender,但可以调用函数
    BasicConfigurator.configure()
    设置root的默认处理方式;而logging.Logger在默认的配置文件中为root默认配置了handler;
  6. Log4J日志级别略有不同:从低到高以此是TRACE,DEBUG,INFO,WARN,ERROR,FATAL;
  7. Log4J自定义配置文件更方便,因为它有相应的方法:
    PropertyConfigurator.configure

不用配置文件的示例

首先来个形象的代码:

package net.oseye;

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;

public class RunMain {

	public static void main(String[] args) {
		BasicConfigurator.configure();//默认配置,设置root的Appender
		Logger log=Logger.getLogger(RunMain.class);	
		//添加一个Appender
		log.addAppender(new ConsoleAppender(new PatternLayout()));
		log.setLevel(Level.TRACE);
		log.warn("test");
	}
}

Log4J没有默认的配置文件,所以如果没有给Logger添加Appender会报异常的,示例中设置了root的Appender,别的Logger可以继承root。而实例中又添加了一个自定义的Appender。

输出结果:

test
0 [main] WARN net.oseye.RunMain - test

使用配置文件的示例

package net.oseye;

import java.io.File;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class RunMain {

	public static void main(String[] args) {
		Logger log=Logger.getLogger(RunMain.class);	
		PropertyConfigurator.configure("d:"+File.separator+"log4j.properties");
		log.setLevel(Level.TRACE);
		log.warn("test");
	}
}

d:log4j.properties配置文件内容如下:

log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n

输出:

0 WARN [main] net.oseye.RunMain - test

基本上是不是和java.util.logging.Logge一样,呵呵。了解更多配置文件讲解请看《Log4J配置文件详解》

出处:http://www.zhaiqianfeng.com    
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4620109.html