JDK自带的日志java.util.logging解析

版权声明:转载或者引用本文内容请注明原作者名字及来源地址→ https://blog.csdn.net/weixin_43254907/article/details/88866846

java.util.logging:JDK标准库中的类,是JDK 1.4 版本之后添加的日志记录的功能包。
log4j:最强大的记录日志的方式。可以通过配置 .properties 或是 .xml 的文件, 配置日志的目的地,格式等等。log4j启动时,默认会寻找source folder下的log4j.xml配置文件,若没有,会寻找log4j.properties文件。
commons-logging:最综合和常见的日志记录方式,是Java中的一个日志接口,一般会与log4j一起使用。自带SimpleLog可用于日志记录。

JDK Logging把日志分为如下七个级别,等级依次降低。

级别 SEVERE WARNING INFO CONFIG FINE FINER FINEST
调用方法 severe() warning() info() config() fine() finer() finest()
含义 严重 警告 信息 配置 良好 较好 最好

如果将级别设置为INFO,则INFO后面的不会输出。info前面的全部输出。通过控制级别达到控制输出的目的。

import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
 * @Description: LOG4J
 * @Author: ChromeRo
 * @Date: 2019.3.28 11:34 上午
 */
public class LogJDKTest {
	private static Logger log = Logger.getLogger(LogJDKTest.class.toString());
 
	public static void main(String[] args) {
		// all→finest→finer→fine→config→info→warning→server→off
		// 级别依次升高,后面的日志级别会屏蔽之前的级别
		log.setLevel(Level.INFO);
		log.finest("finest");
		log.finer("finer");
		log.fine("fine");
		log.config("config");
		log.info("info");
		log.warning("warning");
		log.severe("server");
	}
}

控制台输出:

三月 28, 2019 12:21:12 下午 com.chromer.test.LogJDKTest main
信息: info
三月 28, 2019 12:21:12 下午 com.chromer.test.LogJDKTest main
警告: warning
三月 28, 2019 12:21:12 下午 com.chromer.test.LogJDKTest main
严重: server

1.JDK log默认会有一个控制台输出,它有两个参数,第一个参数设置输出级别,第二个参数设置输出的字符串。
2.同时也可以设置多个输出(Hander),每个输出设置不用的level,然后通过addHandler添加到了log中。
注意:为log设置级别与为每个handler设置级别的意义是不同的。

import java.util.logging.ConsoleHandler;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
 * @Description: LOG4J
 * @Author: ChromeRo
 * @Date: 2019.3.28 11:34 上午
 */
public class LogJDKTest {
	public static Logger log = Logger.getLogger(LogJDKTest.class.toString());
 
	static {
		Handler console = new ConsoleHandler();
		console.setLevel(Level.SEVERE);
		log.addHandler(console);
	}
 
	public static void main(String[] args) {
		// all→finest→finer→fine→config→info→warning→server→off
		// 级别依次升高,后面的日志级别会屏蔽之前的级别
		log.setLevel(Level.INFO);
		log.finest("finest");
		log.finer("finer");
		log.fine("fine");
		log.config("config");
		log.info("info");
		log.warning("warning");
		log.severe("server");
	}
}

控制台输出:

// 下面的输出是默认控制台的
三月 28, 2019 12:21:12 下午 com.chromer.test.LogJDKTest main
信息: info
三月 28, 2019 12:21:12 下午 com.chromer.test.LogJDKTest main
警告: warning
三月 28, 2019 12:21:12 下午 com.chromer.test.LogJDKTest main
严重: server
// 下面的输出是自己添加hander的
三月 28, 2019 12:21:12 下午 com.chromer.test.LogJDKTest main
严重: server

根据级别等级,如果设为all,则所有的信息都会被输出,如果设为off,则所有的信息都不会输出。

猜你喜欢

转载自blog.csdn.net/weixin_43254907/article/details/88866846
今日推荐