概述:
第1部分 创建Logger对象
要使用J2SE的日志功能,首先要取得java.util.logging.Logger实例,这可以通过Logger类的两个静态getLogger()方法来取得:
staticLogger getLogger(String name)
查找或创建一个logger。staticLogger getLogger(String name, String resourceBundleName)
为指定子系统查找或创建一个logger。
注意:name是Logger的名称,当名称相同时候,同一个名称的Logger只创建一个。
下面是简单范例:
1 public classLoggingDemo {2 public static voidmain(String[] args){3 Logger logger = Logger.getLogger("LoggingDemo");4
5 try{6 System.out.println(args[0]);7 }catch(ArrayIndexOutOfBoundsException e){8 logger.warning("没有提供执行时的自变量!");9 }10 }11 }
执行结果:
第2部分 日志级别
在进行信息的记录时,依信息程序的不同,会设定不同等级的信息输出。Java log比log4j的级别详细,全部定义在java.util.logging.Level里面。
各级别按降序排列如下:
SEVERE(最高值)
WARNING
INFO
CONFIG
FINE
FINER
FINEST(最低值)
此外,还有一个级别OFF,可用来关闭日志记录,使用级别ALL启用所有消息的日志记录。
logger默认的级别是INFO,比INFO更低的日志将不显示。
Logger的默认级别定义是在jre安装目录的lib下面。
# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = INFO
可以通过操作Logger上的几个方法来得到不同等级的信息输出。如下列范例:
1 public classLoggingDemo {2 public static voidmain(String[] args){3 Logger logger = Logger.getLogger("LoggingDemo");4
5 logger.severe("严重信息");6
7 logger.warning("警示信息");8
9 logger.info("一般信息");10
11 logger.config("设定方面的信息");12
13 logger.fine("细微的信息");14
15 logger.finer("更细微的信息");16
17 logger.finest("最细微的信息");18 }19
20 }
执行结果: