Java9的日誌級別: ALL 最低級別,系統會輸出所有的日誌信息,會生成大量的·、冗餘的日誌 TRACE 輸出系統的各種跟蹤信息,會生成大量的·、冗餘的日誌 DEBUG 輸出調試信息,會生成較多的日誌 INFO 輸出系統提示用戶的信息 WARNING 輸出警告信息 ERROR 輸出錯誤信息 OFF ...
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.1\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:52275,suspend=y,server=n -javaagent:C:\Users\chy\.IntelliJIdea2019.1\system\captureAgent\debugger-agent.jar -Dfile.encoding=UTF-8 -classpath "D:\瘋狂Java講義\untitled\out\production\untitled;C:\Program Files\JetBrains\IntelliJ IDEA 2019.1.1\lib\idea_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>