原创 Log4J2源碼系列(十) - 內部日誌StatusLogger的實現原理

StatusLogger是用來打印Log4J2的信息的,包括加載插件的過程,信息,解析自定義配置的信息,譬如當系統未檢測到自定義的配置時: No log4j2 configuration file found. Using def

原创 Log4J2(五) - 配置文件是怎麼獲取的?

簡單的分類 簡單的說配置文件的獲取方式可以分爲以下四種: 平常我們使用到的配置方式主要是local configuration,也就是配置文件放在resource中,log4j會自動查找到該文件然後解析。 整體的流程 圖看上去

原创 SLF4J(五) - Marker使用的誤區- 源碼分析

在之前的文章中我也分享過,如果去使用Marker標記不同的日誌來源, 用來簡單的做日誌分類, 但最近發現使用的過程中有誤區,可能會導致以後的替換日誌實現框架的時候出現不兼容的問題。 以Log4j的實現爲例 誤區 使用日誌實現類的M

原创 SLF4J(四)-工廠模式/抽象工廠模式在SLF4J中的實踐

早前看設計模式的時候,發現這套東西根本不太適合小項目或者項目開發初期,但最近發現SLF4J這個項目其實也挺小的,但是設計模式玩的挺溜的,然後就想着總結一下,這個項目中用到的設計模式。 工廠模式 定義:工廠模式(Factory Pa

原创 SLF4J(三) NOP Logger是怎麼實現的呢?源碼分析

文章目錄情景代碼解析NOPServiceProviderNOPLoggerFactoryNOPMDCAdapterBasicMarkerFactory總結 情景 我在之前的文章有提到過這個NOP service provider,

原创 SLF4J(二) - SLF4J綁定了多個實現類的錯誤是怎麼一回事兒?源碼解析

情景 在項目配置的初期,我們經常可以看到這樣的錯誤: SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/U

原创 Java中那些剪不斷理還亂的日誌組件之SFL4J

情景 在Java依賴中經常看到各種日誌依賴,但搞不清他們之間的關係。 梳理 常見日誌組件分類 API類: Commons Logging SLF4J 實現類 JDK Logging Logback Log4J Log4J

原创 log4j2(一) MarkerFilter的應用場景及使用示例

背景 有一個系統是負責從消息隊列收集日誌的,現在系統收集到的日誌能和這個系統本身的日誌分開 使用log4j2 <!--log4j2依賴--> <dependency> <group

原创 log4j2(二) 自定義filter-ThreadFilter根據線程名過濾日誌

背景 項目最新接入了一個sdk,但是這個SDK打印了很多無關緊要的DEBUG日誌,造成了嚴重的信息干擾,現在想去掉這個SDK中指定線程的DEBUG日誌 解決方案 使用Log4j2的插件擴展功能自定義一個插件-ThreadFilte

原创 KOA框架簡介,入門指引

是什麼? Koa 是一個新的 web 框架,由 Express 幕後的原班人馬打造, 致力於成爲 web 應用和 API 開發領域中的一個更小、更富有表現力、更健壯的基石 爲什麼要用? 代碼簡潔,本身只有1000多行,2020

原创 Koa參數驗證框架調研

現狀 之前是用java寫的web程序,現在接手的一個項目使用nodejs寫的,因爲是比較老的系統,之前用的koa2-validator作爲參數驗證工具,結果現在這個依賴現在直接不可用了, 如下圖 ➜ test git:(mast

原创 java的堆棧區別(轉自 ZangXT 論壇回答)

 大體分析一下 1. 棧(stack)與堆(heap)都是Java用來在Ram中存放數據的地方。與C++不同,Java自動管理棧和堆,程序員不能直接地設置棧或堆。 //棧都是由運行環境來處理的,這點C++和java沒有什麼不同.對於堆

原创 log4js配置實戰示例

log4js是什麼? log4js是用node.js中用來處理日誌的組件,日誌處理功能非常的全面,有了它,日常開發找bug效率提升百倍。工慾善其事必先利其器,做開發做工程,此器比懂。 教程 關於log4js的教程, 我覺得這篇文章

原创 Node.js redis client用什麼? 需要使用redis連接池麼?

redis是什麼? redis是一個內存kv數據庫,常用於做緩存,當然也可以實現數據持久化。這不是本文的重點,如果不瞭解,可以查看官網 本文要介紹的內容是,在nodejs使用哪個redis客戶端。 客戶端 node-redis

原创 Java併發之ThreadLocal

概念 ThreadLocal很容易讓人望文生義,想當然地認爲是一個“本地線程”。其實,ThreadLocal並不是一個Thread,而是Thread的局部變量,也許把它命名爲ThreadLocalVariable更容易讓人理解一