自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java日志系統(tǒng):不可或缺的跟蹤調(diào)試工具

開發(fā) 后端
本文探討了日志系統(tǒng)的基本特性、實(shí)現(xiàn)日志系統(tǒng)的意義、方法和內(nèi)部結(jié)構(gòu),并且給出了一種基于 Java 平臺(tái)的日志系統(tǒng)的詳細(xì)設(shè)計(jì)。同時(shí)也指出日志系統(tǒng)會(huì)向服務(wù)化、異步化的方向發(fā)展。

Java日志系統(tǒng)是一種不可或缺的跟蹤調(diào)試工具,特別是在任何無人職守的后臺(tái)程序以及那些沒有跟蹤調(diào)試環(huán)境的系統(tǒng)中有著廣泛的應(yīng)用。 長(zhǎng)期以來, 日志系統(tǒng)作為一種應(yīng)用程序服務(wù),對(duì)于跟蹤調(diào)試、程序狀態(tài)記錄、崩潰數(shù)據(jù)恢復(fù)都有非?,F(xiàn)實(shí)的意義。這種服務(wù)通常以兩種方式存在:

1.Java日志系統(tǒng)作為服務(wù)進(jìn)程存在。Windows中的的事件日志服務(wù)就屬于這種類型,該類型的日志系統(tǒng)通常通過消息隊(duì)列機(jī)制將所需要記錄的日志由日志發(fā)送端發(fā)送給日志服務(wù)。日志發(fā)送端和日志保存端通常不在同一進(jìn)程當(dāng)中,日志的發(fā)送是異步過程。這種日志服務(wù)通常用于管理員監(jiān)控各種系統(tǒng)服務(wù)的狀態(tài)。

2.Java日志系統(tǒng)作為系統(tǒng)調(diào)用存在。Java世界中的日志系統(tǒng)和Unix環(huán)境下諸多守護(hù)進(jìn)程所使用的日志系統(tǒng)都屬于這種類型。日志系統(tǒng)的代碼作為系統(tǒng)調(diào)用被編譯進(jìn)日志發(fā)送端,日志系統(tǒng)的運(yùn)行和業(yè)務(wù)代碼的運(yùn)行在同一進(jìn)程空間。日志的發(fā)送多數(shù)屬于同步過程。這種日志服務(wù)由于能夠同步反映處系統(tǒng)運(yùn)行狀態(tài),通常用于調(diào)試跟蹤和崩潰恢復(fù)。

本文建立的Java日志系統(tǒng)基本屬于第二種類型,但又有所不同。該日志系統(tǒng)將利用 Java 線程技術(shù)實(shí)現(xiàn)一個(gè)既能夠反映統(tǒng)一線程空間中程序運(yùn)行狀態(tài)的同步日志發(fā)送過程,又能夠提供快速的日志記錄服務(wù),還能夠提供靈活的日志格式配置和過濾機(jī)制。

1.1系統(tǒng)調(diào)試的誤區(qū)

在控制臺(tái)環(huán)境上調(diào)試 Java 程序時(shí),此時(shí)往控制臺(tái)或者文本文件輸出一段文字是查看程序運(yùn)行狀態(tài)最簡(jiǎn)單的做法,但這種方式并不能解決全部的問題。有時(shí)候,對(duì)于一個(gè)我們無法實(shí)時(shí)查看系統(tǒng)輸出的系統(tǒng)或者一個(gè)確實(shí)需要保留我們輸出信息的系統(tǒng),良好的日志系統(tǒng)顯得相當(dāng)必要。

因此,不能隨意的輸出各種不規(guī)范的調(diào)試信息,這些隨意輸出的信息是不可控的,難以清除,可能為后臺(tái)監(jiān)控、錯(cuò)誤排除和錯(cuò)誤恢復(fù)帶來相當(dāng)大的阻力。

1.2日志系統(tǒng)框架的基本功能

一個(gè)完備的日志系統(tǒng)框架通常應(yīng)當(dāng)包括如下基本特性:

 所輸出的日志擁有自己的分類。這樣在調(diào)試時(shí)便于針對(duì)不同系統(tǒng)的不同模塊進(jìn)行查詢,從而快速定位到發(fā)生日志事件的代碼。

 日志按照某種標(biāo)準(zhǔn)分成不同級(jí)別。分級(jí)以后的日志,可以用于同一分類下的日志篩選。

 支持多線程。日志系統(tǒng)通常會(huì)在多線程環(huán)境中使用,特別是在 Java 系統(tǒng)當(dāng)中,因此作為一種系統(tǒng)資源,日志系統(tǒng)應(yīng)當(dāng)保證是線程安全的。

 支持不同的記錄媒介。不同的工程項(xiàng)目往往對(duì)日志系統(tǒng)的記錄媒介要求不同,因此日志系統(tǒng)必須提供必要的開發(fā)接口,以保證能夠比較容易的更換記錄介質(zhì)。

 高性能。日志系統(tǒng)通常要提供高速的日志記錄功能以應(yīng)對(duì)大系統(tǒng)下大請(qǐng)求流量下系統(tǒng)的正常運(yùn)轉(zhuǎn)。

 穩(wěn)定性。日志系統(tǒng)必須是保持高度的穩(wěn)定性,不能因?yàn)槿罩鞠到y(tǒng)內(nèi)部錯(cuò)誤導(dǎo)致主要業(yè)務(wù)代碼的崩潰。

1.3常用Java日志系統(tǒng)簡(jiǎn)介

在 Java 世界中,以下三種日志系統(tǒng)框架比較優(yōu)秀:

1) Log4J

最早的 Java日志框架之一,由 Apache 基金會(huì)發(fā)起,提供靈活而強(qiáng)大的日志記錄機(jī)制。但是其復(fù)雜的配置過程和內(nèi)部概念往往令使用者望而卻步。

2) JDK1.4 Logging Framework

繼 Log4J 之后,JDK 標(biāo)準(zhǔn)委員會(huì)將 Log4J 的基本思想吸收到 JDK 當(dāng)中,在 JDK1.4 中發(fā)布了第一個(gè)日志框架接口,并提供了一個(gè)簡(jiǎn)單實(shí)現(xiàn)。

3) Commons Logging Framwork

該框架同樣是 Apache 基金會(huì)項(xiàng)目,其出現(xiàn)主要是為了使得 Java 項(xiàng)目能夠在 Log4J 和 JDK1.4 l Logging Framework 的使用上隨意進(jìn)行切換,因此該框架提供了統(tǒng)一的調(diào)用接口和配置方法。

【編輯推薦】

  1. JDK日志分級(jí)作為核心API最佳實(shí)踐淺析
  2. JDK1.6在LINUX下的安裝配置
  3. 在JDK7 b50中將實(shí)現(xiàn)正則表達(dá)式命名捕獲組
  4. JDK日志框架介紹及其主要功能淺析
  5. JDK日志框架之自定義日志Handler淺析
責(zé)任編輯:yangsai 來源: 網(wǎng)絡(luò)
相關(guān)推薦

2021-11-30 05:51:46

React開發(fā)工具

2020-11-09 06:51:46

開源工具開源

2019-08-05 10:00:13

LinuxBash命令

2014-01-09 14:25:19

MacOS X工具

2024-10-17 16:01:02

2023-05-04 12:37:24

2020-05-07 18:20:52

Git腳本Linux開源

2013-09-18 09:40:32

企業(yè)BYOD企業(yè)應(yīng)用商店

2020-10-27 12:43:53

數(shù)據(jù)分析技術(shù)工具

2024-12-03 10:55:56

微服務(wù)架構(gòu)注冊(cè)中心

2013-09-24 10:32:31

Android開發(fā)者工具

2017-05-24 08:39:48

2011-02-22 08:55:42

Chrome企業(yè)瀏覽器

2017-03-27 17:53:45

Linux

2012-04-18 17:06:41

PhoneGap

2015-05-07 13:38:15

2013-01-04 09:53:32

大數(shù)據(jù)技術(shù)大數(shù)據(jù)

2011-06-13 13:42:29

2014-06-24 09:31:02

信息安全IT安全首席安全官
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)