1. 程式人生 > >探索Java的日誌世界

探索Java的日誌世界

計算 使用手冊 服務 import 描述 mage java開發手冊 每天 .com

技術分享圖片探索Java的日誌世界

本文的思維導圖

一、主題

打開日誌的大門,探索的Java日誌世界

二、目標

  1. 了解常用的日誌框架
  2. 掌握日誌框架的選擇和使用以及開發規範
  3. 了解日誌框架中的一些設計思想

三、內容

1、日誌及日誌框架簡介

1.1 、日誌簡介

1.1.1 、 什麽是日誌?

1)基本字義是指工作日誌 ,詳細介紹一個過程和經歷的記錄。 日誌(漢語詞匯)

2)網絡設備、系統及服務程序等,在運作時都會產生一個叫log的事件記錄;每一行日誌都記載著日期、時間、使用者及動作等相關操作的描述。 日誌(計算機術語)

: ==日誌可以是有價值的信息寶庫,也可以是毫無價值的數據泥潭==。

1.1.2. 、什麽是Java日誌?

Java日誌:Java應用程序在運行過程中記錄的一些數據信息

如訪問的程序中某個接口的時間,請求參數、響應參數等等。

1.2、從System.out.println() 打開Java日誌的大門

public static void main(String[] args) {
        System.out.println("hello sitech");
}

優點

使用方便和簡單!

缺點

  1. 只能輸出到控制臺,不能輸出到文件!
  2. 不能自定義全局的輸出格式!(日誌級別、日誌切割/自動歸檔、異步打印日誌等)
  3. 性能較低,如 println了 synchronized!

1.3、日誌框架的簡介

Java常用的日誌框架對比和深入分析

技術分享圖片

commons-logging和slf4j都只是一個日誌標準,並不是日誌系統的具體實現

log4j,logback等等才是日誌的真正實現。

2、如何選擇及使用日誌框架

2.1、如何選擇?

接口選一個 、實現選一個實現,組合!
日誌門面/接口: SLF4J(即簡單日誌門面(Simple Logging Facade for Java) );
日誌實現:Logbacklog4j

2.2、 如何使用?

2.2.1 、單一日誌框架通過slf4J使用 SLF4J user manual(用戶使用手冊)

註: 每個日誌框架的實現都有自己的配置文件。使用slf4j以後,配置文件還是框架自己本身的配置文件;

  1. 導入對應的jar

  2. 編寫相應實現的配置文件

  3. 使用slf4j編寫日誌代碼

2.2.2、 在復雜系統如何統一所有的日誌都統一到slf4J;legacy APIs
  1. 將系統中其他日誌框架先排除出去;
  2. 用中間包來替換原有的日誌框架;
  3. 我們導入slf4j其他的實現

2.3、例子

  1. 簡單實現slf4j + log4J
  2. 簡單實現slf4j + logback
  3. log4j-over-slf4j與slf4j-log4j12共存stack overflow異常分析
  4. 解決辦法

log4j-over-slf4j與slf4j-log4j12共存stack overflow異常分析

log4jDelegationLoop

3、 日誌開發規範

參考 阿裏巴巴Java開發手冊(終極版).pdf - 日誌規範

4、Slf4j使用到的設計模式

4.1 、設計模式

  1. 工廠模式
  2. 外觀模式 ( 門面模式)
  3. 橋接模式
  4. .....

4.2 、 源碼解析

四、 總結和討論

1、總結

本次分享是Java日誌的整體的介紹,其實日誌開發中還有很多的細節需要關註!

比如日誌的詳細使用:日誌配置文件編寫,日誌輸出的格式語法,日誌輸出的級別,日誌滾動策略等等

比如日誌的設計思想:設計模式、加載原理等等

本此分享只是一個拋磚引玉的過程,日誌的相關知識還是特別的多,希望後面大家可以分享出更精彩更深入的日誌知識和使用技巧。

2、討論

1、什麽情況下,哪些數據信息需要記錄日誌?

  • 請求參數
  • 返回參數
  • 時間
  • 服務器IP(分布式)

2、大家談一下實際日誌開發中一些經驗技巧?

  • 分布日誌排查不方便 --統一日誌平臺(集中日誌收集)ELK
  • 統一日誌平臺:對日誌格式有一定要求
  • 日誌文件數據(服務調用日誌)

附錄

Asynchronous Loggers for Low-Latency Logging:性能對比

log4j2使用介紹

關於日誌記錄的一些感想

Java日誌框架:slf4j作用及其實現原理


如果您覺得這篇博文對你有幫助,請點贊或者喜歡,讓更多的人看到,謝謝!

如果帥氣(美麗)、睿智(聰穎),和我一樣簡單善良的你看到本篇博文中存在問題,請指出,我虛心接受你讓我成長的批評,謝謝閱讀!
祝你今天開心愉快!


歡迎訪問我的csdn博客,我們一同成長!

不管做什麽,只要堅持下去就會看到不一樣!在路上,不卑不亢!

博客首頁 : http://blog.csdn.net/u010648555

? 每天都在變得更好的阿飛

探索Java的日誌世界