使用JDK Logging - Java异常处理

import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * JDK的Logging定义了7个日志级别
 * SERVER
 * WARNING
 * INFO
 * CONFIG
 * FINE
 * FINER
 * FINEST
 * 默认级别是INFO,那么他只会输出INFO或者INFO以上的级别,也就是INFO,WARNING,SERVER三个级别
 * 如果我把级别设置为WARNING,那么只会输出WARNING和SERVER两个级别
 * 
 * JDK Logging的局限
 * 1.JVM启动的时候读取配置文件并完成初始化,因此启动以后我们是没法修改配置文件的 *   
 * 2.我们需要在JVM启动的时候传递参数: -Djava.util.logging.config.file=config-file-name
 *   然后把文件名传递给JVM
 * @author Leon.Sun
 *
 */
public class Hello {
	
	public static void main(String[] args) {
		/**
		 * 获得Logger实例
		 */
		Logger logger = Logger.getGlobal();
		/**
		 * 通过Logger实例调用info方法来输出普通的信息
		 */
		logger.info("start....");
		/**
		 * 调用log方法可以指定日志级别
		 */
		logger.log(Level.WARNING, "warning....");
		/**
		 * 调用warning打印警告的信息
		 */
		logger.warning("start....");
	}

}
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * 我们在日志中打印异常会有完整的记录
 * 这也是为了便于我们调试错误
 * 
 * 我们把日志级别调整为WARNING,
 * 这个时候所有INFO的输出都不存在了,我们只得到了ONLY的输出
 * 这样的话我们只需要修改一下logger的配置,我们无需修改代码
 * 得到不同的输出
 * 
 * 日志是为了替代System.out.println()方法,
 * 我们可以通过日志来定义格式,重定向到文件等,
 * 日志可以存档,以便于我们追踪问题
 * 日志记录可以按照级别分类,便于打开或关闭某些级别的输出
 * 我们可以通过配置文件调整日志,无需修改代码
 * JDK提供了默认的Logging,它定义在java.util.logging这个包中
 * @author Leon.Sun
 *
 */
public class Test {
	
	public static void main(String[] args) {
		
		Logger logger = Logger.getGlobal();
		logger.setLevel(Level.WARNING);
		logger.info("Create new person...");
		Person p = new Person("Xiao Ming");
		System.out.println(p.hello());
		try {
			new Person(null);
		} catch (Exception e) {
			/**
			 * 用Logger的log记录这个异常
			 */
			logger.log(Level.WARNING, "Create new person failed", e);
		}
		/**
		 * 最后输出一个INFO信息打印出程序结束
		 */
		logger.info("Program end.");
		
	}

}

 

你可能感兴趣的:(使用JDK Logging - Java异常处理)