摘要:一引言程序員都知道,日志對于一個應用系統來說至關重要,現在應該也沒有無日志的系統了吧。具體的日志實現還是需要使用不同的日志框架來完成。然后如下使用測試測試測試測試運行結果發現并沒有打印出日志,這是因為缺少了配置文件。
一、引言
程序員都知道,日志對于一個應用系統來說至關重要,現在應該也沒有無日志的系統了吧。很多程序員都知道 Log4j,Logback,java.util.logging 等日志庫,最近看到一些老的項目還是單純地只使用 Log4j 等日志庫,如果你還不懂 Slf4j,那么從現在開始,該是時候學習使用下 Slf4j 了。二、簡單使用SLF4J,即簡單日志門面(Simple Logging Facade for Java),它并不是用來替代 Log4j,Logback 等日志庫的,它只是提供了一堆接口以及一個 LoggerFactory 工廠類,是為了兼容不同的日志庫而抽象出來的適配器接口。具體的日志實現還是需要使用不同的日志框架來完成。
SLF4J 和 JCL(以前叫 Jakarta Commons Logging,現在叫 Apache Commons Logging) 都是日志門面,所不同的是 JCL 是在運行時動態尋找日志庫進行綁定,SLF4J 是在編譯時靜態綁定指定的日志庫。現在還是很多應用系統使用 JCL + Log4j 這種搭配的,不過當程序規模越來越龐大是,JCL 的動態綁定并不是總能成功的,在Sping官方文檔中 Not Using Commons Logging 小節也提到因為算法問題引起。大概這也是 SLF4J 產生的一個原因吧。
這里使用 slf4j + log4j 演示下簡單的使用。需要導入三個包:slf4j-1.7.25.jar,slf4j-log4j12-1.7.25.jar, log4j-1.2.17.jar 。然后如下使用:
package cn.mqq; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author mqq * @create 2018-03-13 23:46 */ public class Test { private static final Logger log = LoggerFactory.getLogger(Test.class); public static void main(String[] args) { log.debug("debug 測試"); log.info("info 測試"); log.warn("warn 測試"); log.error("error 測試"); } }
運行結果:
發現并沒有打印出日志,這是因為缺少了 log4j.properties 配置文件。在 /src/main/resources 目錄下添加文件 log4j.properties,內容如下:
log4j.rootLogger = DEBUG,CONSOLE log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold = INFO log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%c] - %m%n
再次運行如下:
運行工程。
三、小結日志的使用就是這么簡單,用了 slf4j 以后,通過修改不同的 jar 包,可以很方便地更換不同的日志框架,如把 slf4j-log4j12-1.7.25.jar 和 log4j-1.2.17.jar 換成 logback-classic-1.2.3.jar 包即可把 log4j 日志庫換成 logback 日志庫,配置文件也要換成相應的 logback 配置文件。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68796.html
摘要:歡迎大家收看聊一聊系列,這一套系列文章,可以幫助前端工程師們了解前端的方方面面不僅僅是代碼什么是功能統計作為一名開發,我們的產品發布出去之后,無論是產品還是運營,其實都是想及時了解產品對用戶產生的影響的。下一章,我們將繼續聊聊速度統計。 歡迎大家收看聊一聊系列,這一套系列文章,可以幫助前端工程師們了解前端的方方面面(不僅僅是代碼):https://segmentfault.com/bl...
摘要:歡迎大家收看聊一聊系列,這一套系列文章,可以幫助前端工程師們了解前端的方方面面不僅僅是代碼什么是功能統計作為一名開發,我們的產品發布出去之后,無論是產品還是運營,其實都是想及時了解產品對用戶產生的影響的。下一章,我們將繼續聊聊速度統計。 歡迎大家收看聊一聊系列,這一套系列文章,可以幫助前端工程師們了解前端的方方面面(不僅僅是代碼):https://segmentfault.com/bl...
閱讀 3398·2021-10-11 11:06
閱讀 2182·2019-08-29 11:10
閱讀 1944·2019-08-26 18:18
閱讀 3255·2019-08-26 13:34
閱讀 1559·2019-08-23 16:45
閱讀 1037·2019-08-23 16:29
閱讀 2797·2019-08-23 13:11
閱讀 3226·2019-08-23 12:58