Java9的日志级别:
ALL 最低级别,系统会输出所有的日志信息,会生成大量的·、冗余的日志
TRACE 输出系统的各种跟踪信息,会生成大量的·、冗余的日志
DEBUG 输出调试信息,会生成较多的日志
INFO 输出系统提示用户的信息
WARNING 输出警告信息
ERROR 输出错误信息
OFF 关闭日志输出(不记录日志)
以上级别由低到高。
设置日志级别为某一级时,低于该级别的日志都不会输出,只输出该级别、高于该级别的日志。
示例:
1 package test; 2 3 import java.io.IOException; 4 import java.util.logging.FileHandler; 5 import java.util.logging.Level; 6 import java.util.logging.Logger; 7 8 public class Test{ 9 public static void main(String[] args) throws IOException { 10 //设置使用a.xml文件保存日志,会在项目的根目录下生成一个a.xml文件来保存日志。也可指定其他目录。 11 // "fkjava"是特定的字符串。 12 Logger.getLogger("fkjava").addHandler(new FileHandler("a.xml")); 13 //设置日志级别为WARNING,低于WARNING的日志都会被忽略 14 Logger.getLogger("fkjava").setLevel(Level.WARNING); 15 //使用System的静态方法获取System.Logger对象,用于输出日志 16 System.Logger logger=System.getLogger("fkjava"); 17 //输出一条日志,第一个参数设置此条日志的级别,第二个参数为String,设置要输出的日志信息。 18 // 由于DEBUG低于设置的WARNING,所以此条日志会被忽略(不会被输出到a.xml文件) 19 logger.log(System.Logger.Level.DEBUG,"debug信息"); 20 //debug、run时,会在控制台输出此条日志,“警告:warning信息",冒号后面是第二个参数的内容 21 //同时会输出此条日志到a.xml文件中 22 logger.log(System.Logger.Level.WARNING,"warning信息"); 23 logger.log(System.Logger.Level.ERROR,"error信息"); 24 } 25 }
debug/run,控制台输出如下:
D:jdk-12.0.1injava.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:52275,suspend=y,server=n -javaagent:C:Userschy.IntelliJIdea2019.1systemcaptureAgentdebugger-agent.jar -Dfile.encoding=UTF-8 -classpath "D:疯狂Java讲义untitledoutproductionuntitled;C:Program FilesJetBrainsIntelliJ IDEA 2019.1.1libidea_rt.jar" test.Test Connected to the target VM, address: '127.0.0.1:52275', transport: 'socket' Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 5月 14, 2019 2:20:35 上午 test.Test main 警告: warning信息 5月 14, 2019 2:20:35 上午 test.Test main 严重: error信息 Disconnected from the target VM, address: '127.0.0.1:52275', transport: 'socket' Process finished with exit code 0
a.xml文件记录的日志如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE log SYSTEM "logger.dtd"> <log> <record> <date>2019-05-13T18:20:35.025273100Z</date> <millis>1557771635025</millis> <nanos>273100</nanos> <sequence>0</sequence> <logger>fkjava</logger> <level>WARNING</level> <class>test.Test</class> <method>main</method> <thread>1</thread> <message>warning信息</message> </record> <record> <date>2019-05-13T18:20:35.164415700Z</date> <millis>1557771635164</millis> <nanos>415700</nanos> <sequence>1</sequence> <logger>fkjava</logger> <level>SEVERE</level> <class>test.Test</class> <method>main</method> <thread>1</thread> <message>error信息</message> </record> </log>
日志根元素为<log>
一条日志的根元素为<record>
日志登记为<level>
日志信息为<message>