<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
log紀錄檔可以debug錯誤或者在關鍵位置輸出想要的結果
java紀錄檔使用一般有原生logger、log4j、Slf4j等
一般的紀錄檔級別都有如下(不同紀錄檔不一樣的方法引數,注意甄別)
引數 | 描述 |
---|---|
OFF、ON | 不輸出或者輸出所有級別資訊,通常使用在setLevel方法中 |
FATAL | 致命錯誤 |
ERROR | 錯誤error |
WARN | 告警資訊 |
INFO | info資訊 |
DEBUG | 偵錯資訊 |
TRACE | 執行軌跡資訊 |
CONFIG | 設定設定資訊 |
FINE | 級別輕微資訊 |
FINER | 級別更輕微資訊 |
FINEST | 級別最輕微資訊 |
科普一下原生紀錄檔生成工具,主要參照import java.util.logging.Logger;
原始碼函數大致有如下方法:
(給定訊息將被轉發到所有註冊的輸出處理程式物件)
// 嚴重資訊 public void severe(String msg) { log(Level.SEVERE, msg);} // 警告資訊 public void warning(String msg) { log(Level.WARNING, msg);} // info資訊 public void info(String msg) {log(Level.INFO, msg);} // 設定設定資訊 public void config(String msg) {log(Level.CONFIG, msg);} // 級別小資訊 public void fine(String msg) {log(Level.FINE, msg);} // 級別更小資訊 public void finer(String msg) {log(Level.FINE, msg);} // 級別最小資訊 public void finest(String msg) {log(Level.FINE, msg);}
具體範例如下:
package com.gaokaoli.logger; import java.util.logging.Logger; public class text1 { public static void main(String []args){ Logger logger = Logger.getLogger("text1"); logger.severe("嚴重資訊"); logger.warning("警示資訊"); logger.info("info資訊"); logger.config("設定設定資訊"); logger.fine("級別小的資訊"); logger.finer("級別更小的資訊"); logger.finest("級別最小的資訊"); } }
輸出截圖如下:
可以看到小於info級別的資訊不會在終端上顯示輸出
通過logger.setLevel(Level.ALL);
來控制輸出的級別。
ALL則輸出severe、warning以及info,OF不輸出,如果設定WARNING,則只輸出severe以及warning;同理可推其他設定;
方法中也有通過呼叫提供的供應商函數來構造訊息,並將其轉發到所有註冊的輸出處理程式物件。
// 嚴重資訊 public void severe(Supplier<String> msgSupplier) {log(Level.SEVERE, msgSupplier);} // 警告資訊 public void warning(Supplier<String> msgSupplier) {log(Level.WARNING, msgSupplier);} // info資訊 public void info(Supplier<String> msgSupplier) {log(Level.INFO, msgSupplier); } // 設定設定資訊 public void config(Supplier<String> msgSupplier) {log(Level.CONFIG, msgSupplier);} // 級別小資訊 public void fine(Supplier<String> msgSupplier) {log(Level.FINE, msgSupplier);} // 級別更小資訊 public void finer(Supplier<String> msgSupplier) {log(Level.FINER, msgSupplier);} // 級別最小資訊 public void finest(Supplier<String> msgSupplier) {log(Level.FINEST, msgSupplier);}
在xml檔案中匯入依賴包
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.14.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.14.1</version> </dependency>
範例程式碼如下:
package com.gaokaoli.logger; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class test3 { public static void main(String []args){ Logger logger = LogManager.getLogger("text3"); logger.fatal("fatal錯誤"); logger.error("error錯誤"); logger.warn("warn警示"); logger.info("info基本資訊"); logger.debug("debug偵錯"); logger.trace("trace 資訊"); } }
輸出結果如下:
其方法大致都有如下:
具體使用什麼方法可對應檢視
目前主流的紀錄檔框架,可以使用預留位置進行引數佔位
主要通過slf4j作為紀錄檔輸出
在每個類的開頭都加入如下:
在xml檔案中引入依賴包
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</version> <scope>compile</scope> </dependency>
如果不引入或者引入錯誤
會出現如下問題:出現SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“.的解決方法
程式碼中通過參照通過
import org.slf4j.Logger; import org.slf4j.LoggerFactory;
具體範例程式碼如下:
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class text2 { public static final Logger logger = LoggerFactory.getLogger(text2.class); public static void main(String []args){ logger.error("error錯誤"); logger.warn("warn警示"); logger.info("info基本資訊"); logger.debug("debug偵錯"); logger.trace("trace資訊"); } }
截圖如下:
通過輸出結果可看到
LoggerFactory.getLogger輸出的結果帶有類的相對路徑,便於開發
到此這篇關於java常見log紀錄檔的使用方法解析的文章就介紹到這了,更多相關java常見log紀錄檔內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45