本文為CSDN博主「LanTingShuXu」的原創文章,原文鏈接:https://blog.csdn.net/LanTingShuXu/article/details/80528558
java.utils.logging
包提供了日志功能
使用方式主要分為兩種
- 基本的全局日志記錄功能,例如打印info級別的全局日志
// 可選的設置打印的日志級別(打印所有級別) Logger.getGlobal().setLevel(Level.ALL); // 打印info級別的全局日志 Logger.getGlobal().info("測試日志輸出");
- 使用自定義的日志記錄
Logger logger = Logger.getLogger("JUL"); logger.setLevel(Level.INFO); logger.severe("JUL severe"); logger.warning("JUL warning"); logger.info("JUL info"); logger.config("JUL config"); logger.fine("JUL fine"); logger.finer("JUL finer"); logger.finest("JUL finest");
日志的級別
總共分為7個,由高到低分別為:
- SERVERE
- WARNING
- INFO
- CONFIG
- FINE
- FINER
- FINEST
設置顯示info以下級別的日志
默認情況下,只記錄前三個級別,上文自定義logger代碼是沒有config及以下級別的日志輸出的。如果想要顯示INFO級別以下的日志信息,需要單獨配置。配置方式如下
- 找到JDK安裝目錄進入目錄:jre/lib,復制logging.properties文件到項目src下
-
編輯logging.properties文件,找到.Level=INFO這一行(我的是29行),將其改為你想顯示的級別,比如:.Level=FINE則是顯示FINE及以上的級別,.Level=ALL是顯示所有日志。當然,可以設置特定的自定的日志級別,例如com.lanting.Level=INFO則是只對記錄器名為“com.lanting”及子記錄器的起效
- 繼續找到
java.util.logging.ConsoleHandler.level = INFO
這一行(我的是43行),同樣改成你想要顯示的級別,例如改成java.util.logging.ConsoleHandler.level = ALL
則是顯示所有級別的信息(推薦 - 在獲取日志對象前設置 系統屬性 java.util.logging.config.file
System.setProperty("java.util.logging.config.file",System.getProperty("user.dir")+"\\logging.properties");
- 或者在啟動時設置參數
-Djava.util.logging.config.file=F:\practice\studylogging\logging.properties
然后就能夠輸出info以下級別的日志了
輸出日志到文件
logging.properties文件中默認只配置了ConsoleHandler,也就是不會生成日志文件,需要更改成如下配置
# To also add the FileHandler, use the following line instead. handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
每種handler都可以設置自己的日志輸出級別,如果不設置,則采用“.LEVEL”配置的值
.level= ALL
# default file output is in user's home directory. java.util.logging.FileHandler.pattern = ./java%u.log java.util.logging.FileHandler.limit = 50000 java.util.logging.FileHandler.count = 1 java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter # Limit the message that are printed on the console to INFO and above. java.util.logging.ConsoleHandler.level = ALL java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter