-
1 # 幣小孩
-
2 # IT宅男
在Java領域,存在大量的日誌元件,open-open收錄了21個日誌元件。日誌系統作為一種應用程式服務,對於跟蹤除錯、程式狀態記錄、崩潰資料恢復都有著重要的作用,我們可以把Java日誌系統看作是必不可少的跟蹤除錯工具。
1.簡介日誌系統是一種不可或缺的跟蹤除錯工具,特別是在任何無人職守的後臺程式以及那些沒有跟蹤除錯環境的系統中有著廣泛的應用。長期以來,日誌系統作為一種應用程式服務,對於跟蹤除錯、程式狀態記錄、崩潰資料恢復都有非常現實的意義。這種服務通常以兩種方式存在:
1.日誌系統作為服務程序存在。Windows中的的事件日誌服務就屬於這種型別,該型別的日誌系統通常透過訊息佇列機制將所需要記錄的日誌由日誌傳送端傳送給日誌服務。日誌傳送端和日誌儲存端通常不在同一程序當中,日誌的傳送是非同步過程。這種日誌服務通常用於管理員監控各種系統服務的狀態。
2.日誌系統作為系統呼叫存在。Java世界中的日誌系統和Unix環境下諸多守護程序所使用的日誌系統都屬於這種型別。日誌系統的程式碼作為系統呼叫被編譯進日誌傳送端,日誌系統的執行和業務程式碼的執行在同一程序空間。日誌的傳送多數屬於同步過程。這種日誌服務由於能夠同步反映處系統執行狀態,通常用於除錯跟蹤和崩潰恢復。
1.1系統除錯的誤區在控制檯環境上除錯Java程式時,此時往控制檯或者文字檔案輸出一段文字是檢視程式執行狀態最簡單的做法,但這種方式並不能解決全部的問題。有時候,對於一個我們無法實時檢視系統輸出的系統或者一個確實需要保留我們輸出資訊的系統,良好的日誌系統顯得相當必要。因此,不能隨意的輸出各種不規範的除錯資訊,這些隨意輸出的資訊是不可控的,難以清除,可能為後臺監控、錯誤排除和錯誤恢復帶來相當大的阻力。
1.2日誌系統框架的基本功能一個完備的日誌系統框架通常應當包括如下基本特性:
所輸出的日誌擁有自己的分類:這樣在除錯時便於針對不同系統的不同模組進行查詢,從而快速定位到發生日誌事件的程式碼。
日誌按照某種標準分成不同級別:分級以後的日誌,可以用於同一分類下的日誌篩選。
支援多執行緒:日誌系統通常會在多執行緒環境中使用,特別是在Java系統當中,因此作為一種系統資源,日誌系統應當保證是執行緒安全的。
支援不同的記錄媒介:不同的工程專案往往對日誌系統的記錄媒介要求不同,因此日誌系統必須提供必要的開發介面,以保證能夠比較容易的更換記錄介質。
高效能:日誌系統通常要提供高速的日誌記錄功能以應對大系統下大請求流量下系統的正常運轉。
穩定性:日誌系統必須是保持高度的穩定性,不能因為日誌系統內部錯誤導致主要業務程式碼的崩潰。
1.3常用日誌系統簡介在Java世界中,以下三種日誌框架比較優秀:
1)Log4J
最早的Java日誌框架之一,由Apache基金會發起,提供靈活而強大的日誌記錄機制。但是其複雜的配置過程和內部概念往往令使用者望而卻步。
2)JDK1.4LoggingFramework
繼Log4J之後,JDK標準委員會將Log4J的基本思想吸收到JDK當中,在JDK1.4中釋出了第一個日誌框架介面,並提供了一個簡單實現。
3)CommonsLoggingFramwork
該框架同樣是Apache基金會專案,其出現主要是為了使得Java專案能夠在Log4J和JDK1.4lLoggingFramework的使用上隨意進行切換,因此該框架提供了統一的呼叫介面和配置方法。
-
3 # 李唐立世貞觀節烈
對日誌程式書寫一個介面、介面卡、和動態代理、再做一個支入去對日誌進行實時監控和梳理或採用Elasticsearch、Logstash、Kibana的方式去處理!
回覆列表
一、ELK應用場景
在複雜的企業應用服務群中,記錄日誌方式多種多樣,並且不易歸檔以及提供日誌監控的機制。無論是開發人員還是運維人員都無法準確的定位服務、伺服器上面出現的種種問題,也沒有高效搜尋日誌內容從而快速定位問題的方式。因此需要一個集中式、獨立的、蒐集管理各個服務和伺服器上的日誌資訊,集中管理,並提供良好的UI介面進行資料展示,處理分析。
得此:ELK提供一套開源的解決方案,能高效、簡便的滿足以上場景。
二、ELK日誌系統介紹
1、ELK分別是Elasticsearch、Logstash、Kibana三個開源框架縮寫。
框架 簡介 作用
Elasticsearch 開源分散式搜尋引擎,提供儲存、分析、搜尋功能。特點:分散式、基於reasful風格、支援海量高併發的準實時搜尋場景、穩定、可靠、快速、使用方便等。 接收蒐集的海量結構化日誌資料,並提供給kibana查詢分析
Kibana 開源日誌報表系統,對elasticsearch以及logstash有良好的web頁面支援。 對elasticsearch提供的資料進行分析展示