java常見log日志的使用方法解析
前言
log日志可以debug錯誤或者在關鍵位置輸出想要的結果
java日志使用一般有原生logger、log4j、Slf4j等
一般的日志級別都有如下(不同日志不一樣的方法參數(shù),注意甄別)
| 參數(shù) | 描述 |
|---|---|
| OFF、ON | 不輸出或者輸出所有級別信息,通常使用在setLevel方法中 |
| FATAL | 致命錯誤 |
| ERROR | 錯誤error |
| WARN | 告警信息 |
| INFO | info信息 |
| DEBUG | 調試信息 |
| TRACE | 運行軌跡信息 |
| CONFIG | 設定配置信息 |
| FINE | 級別輕微信息 |
| FINER | 級別更輕微信息 |
| FINEST | 級別最輕微信息 |
1. Java.util.Logger
科普一下原生日志生成工具,主要引用import java.util.logging.Logger;
源代碼函數(shù)大致有如下方法:
(給定消息將被轉發(fā)到所有注冊的輸出處理程序對象)
// 嚴重信息
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;同理可推其他設置;

方法中也有通過調用提供的供應商函數(shù)來構造消息,并將其轉發(fā)到所有注冊的輸出處理程序對象。
// 嚴重信息
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);}
2. org.apache.logging.log4j
在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 信息");
}
}
輸出結果如下:

其方法大致都有如下:

具體使用什么方法可對應查看
3. org.slf4j.Logger
目前主流的日志框架,可以使用占位符進行參數(shù)占位
主要通過slf4j作為日志輸出
在每個類的開頭都加入如下:
在xml文件中引入依賴包
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</version> <scope>compile</scope> </dependency>
如果不引入或者引入錯誤
會出現(xiàn)如下問題:出現(xiàn)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輸出的結果帶有類的相對路徑,便于開發(fā)
到此這篇關于java常見log日志的使用方法解析的文章就介紹到這了,更多相關java常見log日志內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決Mybatis 大數(shù)據(jù)量的批量insert問題
這篇文章主要介紹了解決Mybatis 大數(shù)據(jù)量的批量insert問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
spring-Kafka中的@KafkaListener深入源碼解讀
本文主要通過深入了解源碼,梳理從spring啟動到真正監(jiān)聽kafka消息的這套流程,從spring啟動開始處理@KafkaListener,本文結合實例流程圖給大家講解的非常詳細,需要的朋友參考下2023-02-02
詳解使用Spring AOP和自定義注解進行參數(shù)檢查
本篇文章主要介紹了詳解使用Spring AOP和自定義注解進行參數(shù)檢查,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
解決idea刪除模塊后重新創(chuàng)建顯示該模塊已經被注冊的問題
這篇文章主要介紹了解決idea刪除模塊后重新創(chuàng)建顯示該模塊已經被注冊的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02

