作為一名Java程序員,我們開發(fā)了很多Java應(yīng)用程序,包括桌面應(yīng)用、WEB應(yīng)用以及移動(dòng)應(yīng)用。然而日志系統(tǒng)是一個(gè)成熟Java應(yīng)用所必不可少的。

在開發(fā)和調(diào)試階段,日志可以幫助我們更好更快地定位bug;

在運(yùn)行維護(hù)階段,日志系統(tǒng)又可以幫我們記錄大部分的異常信息,從而幫助我們更好的完善系統(tǒng)。

本文要來(lái)分享給大家Java程序員最常用的Java日志框架組件。

在項(xiàng)目開發(fā)過程中,我們可以通過 debug 查找問題。而在線上環(huán)境我們查找問題只能通過打印日志的方式查找問題。因此對(duì)于一個(gè)項(xiàng)目而言,日志記錄是一個(gè)非常重要的問題。

如何選擇一個(gè)合適的日志記錄框架?

在Java開發(fā)中,常用的日志框架有JUL、Log4j、Logback、Log4j2、JCL、SLF4j各有各的特點(diǎn),各有各的應(yīng)用場(chǎng)景。

了解這些框架的特點(diǎn)及應(yīng)用場(chǎng)景,有利于我們做技術(shù)選型的時(shí)候做出正確的判斷。

市面流行的日志框架

記錄型日志框架

  • Jul (Java Util Logging):JDK中的日志記錄工具,也常稱為JDKLog、jdk-logging,自Java1.4以來(lái)的官方日志實(shí)現(xiàn)。
  • Log4j:Apache Log4j是一個(gè)基于Java的日志記錄工具。它是由Ceki Gülcü首創(chuàng)的,現(xiàn)在則是Apache軟件基金會(huì)的一個(gè)項(xiàng)目。 Log4j是幾種Java日志框架之一。
  • Log4j2:一個(gè)具體的日志實(shí)現(xiàn)框架,是Log4j 1的下一個(gè)版本,與Log4j 1發(fā)生了很大的變化,Log4j 2不兼容Log4j 1。
  • Logback:一個(gè)具體的日志實(shí)現(xiàn)框架,和Slf4j是同一個(gè)作者,業(yè)界中稱作log4j后浪,一個(gè)可靠、通用且靈活的java日志框架

門面型日志框架

  • JCL:Apache基金會(huì)所屬的項(xiàng)目,是一套Java日志接口,之前叫Jakarta Commons Logging,后更名為Commons Logging
  • SLF4J:是一套簡(jiǎn)易Java日志門面,本身并無(wú)日志的實(shí)現(xiàn)。(Simple Logging Facade for Java,縮寫Slf4j)

總的來(lái)說,只要程序員投身到實(shí)際的工作環(huán)境中,就會(huì)對(duì)日志的重要性有著充分的認(rèn)知,尤其是對(duì)于Web以及大型的項(xiàng)目應(yīng)用。

對(duì)于新手來(lái)說,了解日志的功能,養(yǎng)成好的編程習(xí)慣也十分有必要。

如果你之前忽略了日志,沒關(guān)系,今天咱們開始一起補(bǔ)上,為大家?guī)?lái)了最新最全的日志框教程全集。

這么多日志框架,給人一種很混亂的感覺,那么本課程將對(duì)這些日志框架進(jìn)行全面系統(tǒng)梳理,采用項(xiàng)目案例驅(qū)動(dòng)的方式詳細(xì)講解了以上幾種日志組件,知識(shí)點(diǎn)采用由淺入深、層層遞進(jìn)的方式講解,讓大家在輕松愉快的氛圍中完成學(xué)習(xí),更加詳細(xì)且真實(shí)的體會(huì)日志為我們?cè)陂_發(fā)和生產(chǎn)環(huán)境當(dāng)中所帶來(lái)的好處。

適應(yīng)人群

至少學(xué)習(xí)完了JavaSE,Java Web課程或者已經(jīng)工作的同學(xué)。

沒有基礎(chǔ)的同學(xué)也不要著急,這套教程覆蓋了目前所有的日志框架,只要你學(xué)Java,就一定用得到,先收藏,以備不時(shí)之需。

Java日志框架在線學(xué)習(xí)

???https://www.bilibili.com/video/BV1Mb4y1Z74W??

Java日志框架資料下載

???????http://www.bjpowernode.com/?51cto??

課程目錄

??001.日志概述

?002.日志文件分類

?003.日志框架作用和價(jià)值

?004.市面流行的日志框架

?005.日志門面和日志框架的區(qū)別

?006.JUL簡(jiǎn)介及組件介紹

?007.JUL組件詳細(xì)介紹

?008.JUL入門案例

?009.JUL打印日志信息動(dòng)態(tài)傳遞數(shù)據(jù)

?010.JUL日志級(jí)別說明

?011.JUL默認(rèn)日志級(jí)別展示

?012.JUL默認(rèn)級(jí)別源碼查詢

?013.JUL自定義日志級(jí)別

?014.JUL文件中日志的打印

?015.JUL同時(shí)添加多個(gè)處理器

?016.JULLogger的父子關(guān)系

?017.JULLogger父子關(guān)系的作用2

?018.JUL節(jié)點(diǎn)關(guān)系源碼查看

?019.JUL默認(rèn)配置文件位置

?020.JUL配置文件解析

?021.JUL使用自定義配置文件

?022.JUL自定義配置文件中的文件輸出

?023.JUL追加日志信息

?024.JUL框架操作流程總結(jié)

?025.Log4j簡(jiǎn)介

?026.Log4j組件介紹

?027.Log4j日志記錄器說明

?028.Log4j日志級(jí)別說明

?029.Log4j日志輸出方式說明

?030.Log4j輸出格式化說明

?031.Log4j入門案例

?032.Log4j加載初始化信息簡(jiǎn)單解析

?033.Log4j日志級(jí)別詳解

?034.Log4j日志級(jí)別輸出測(cè)試

?035.Log4j日志管理器查看

?036.Log4j配置文件的加載時(shí)機(jī)

?037.Log4j輸出方式和輸出格式的配置

?038.Log4j根節(jié)點(diǎn)Logger的配置

?039.Log4j日志輸出詳細(xì)信息開關(guān)

?040.Log4j自定義格式介紹

?041.Log4j自定義格式詳解

?042.Log4j將日志輸出到文件中的配置

?043.Log4j指定文件輸出位置及字符編碼設(shè)置

?044.Log4j按照文件大小進(jìn)行拆分1

?045.Log4j按照文件大小進(jìn)行拆分2

?046.Log4j按照時(shí)間進(jìn)行日志拆分

?047.Log4j日志持久化表結(jié)構(gòu)創(chuàng)建

?048.Log4j日志持久化相關(guān)配置

?049.Log4j日志持久化實(shí)現(xiàn)

?050.Log4j自定義Logger的配置

?051.Log4j自定義Logger和根節(jié)點(diǎn)同時(shí)配置時(shí)的問題

?052.Log4j自定義logger應(yīng)用場(chǎng)景

?053.Log4j自定義logger補(bǔ)充

?054.JCL簡(jiǎn)介

?055.JCL帶給我們的好處

?056.JCL入門案例

?057.JCL集成Log4j的日志輸出

?058.JCL源碼使用日志框架源碼查看

?059.JCL如何幫我們加載Logger對(duì)象

?060.日志門面簡(jiǎn)介

?061.SLF4JSLF4J簡(jiǎn)介

?062.SLF4J入門案例slf4j-simple

?063.SLF4J動(dòng)態(tài)打印信息功能實(shí)現(xiàn)

?064.SLF4J打印異常信息

?065.SLF4JSLF4J與日志集成的分類

?066.SLF4J同時(shí)集成多個(gè)日志實(shí)現(xiàn)的結(jié)果分析

?067.SLF4J集成logback

?068.SLF4J使用slf4j-nop禁止日志打印

?069.SLF4J集成log4j的方式

?070.SLF4J集成適配器做log4j日志打印

?071.SLF4J集成JDK14適配器做JUL日志輸出

?072.SLF4J集成多個(gè)日志實(shí)現(xiàn)出現(xiàn)警告信息分析1

?073.SLF4J集成多個(gè)日志實(shí)現(xiàn)出現(xiàn)警告信心分析2

?074.SLF4J集成多個(gè)日志實(shí)現(xiàn)出現(xiàn)警告信心分析3

?075.SLF4J日志重構(gòu)需求

?076.SLF4J日志重構(gòu)解決方案

?077.SLF4J日志重構(gòu)實(shí)現(xiàn)

?078.SLF4J橋接后Logger的取得方式

?079.LogbackLogback簡(jiǎn)介

?080.Logback搭建Logback環(huán)境

?081.LogbackLogback入門案例

?082.Logback配置文件通用屬性介紹

?083.Logback配置控制臺(tái)appender

?084.Logback配置rootlogger

?085.Logback在文件中錄入日志

?086.LogbackHTML格式日志記錄

?087.Logback日志拆分1

?088.Logback日志拆分2

?089.Logback通過過濾器做更細(xì)粒度的日志打印

?090.Logback為什么使用異步日志

?091.Logback異步日志功能實(shí)現(xiàn)

?092.Logback自定義logger

?093.Logback配置文件轉(zhuǎn)換

?094.Log4j2Log4j2簡(jiǎn)介

?095.Log4j2Log4j2日志環(huán)境搭建

?096.Log4j2Log4j2默認(rèn)配置日志打印

?097.Log4j2Log4j2配置文件基礎(chǔ)標(biāo)簽

?098.Log4j2配置文件根標(biāo)簽的屬性配置

?099.Log4j2slf4j與log4j2搭配使用方式

?100.Log4j2日志文件輸出

?101.Log4j2日志文件拆分1

?102.Log4j2日志文件拆分2

?103.Log4j2Log4j2中的異步日志

?104.Log4j2AsyncAppender形式做異步日志

?105.Log4j2AsyncLogger做全局異步日志

?106.Log4j2AsyncLogger混合異步日志配置

?107.Log4j2AsyncLogger混合異步日志實(shí)現(xiàn)

?108.Springboot日志實(shí)現(xiàn)概述

?109.Springboot日志實(shí)現(xiàn)日志依賴關(guān)系

?110.Springboot日志實(shí)現(xiàn)日志級(jí)別打印

?111.Springboot日志實(shí)現(xiàn)測(cè)試log4j2橋接器

?112.Springboot日志實(shí)現(xiàn)使用核心配置文件配置日志信息

?113.Springboot日志實(shí)現(xiàn)配置文件輸出

?114.Springboot日志實(shí)現(xiàn)導(dǎo)入logback配置文件

?115.Springboot日志實(shí)現(xiàn)使用logback配置實(shí)現(xiàn)日志拆分

?116.Springboot日志實(shí)現(xiàn)集成log4j2?

?