日誌元件XLog

2021-06-20 02:13:05 字數 1461 閱讀 5945

這裡以日誌元件xlog作為開頭,不再以專門的概要或者目錄說明開始,體現新生命開發團隊元件體系的基本思想——追求實用,一切從簡!

我寫文件資料向來行文自如,沒有統一的格式。基本上標題是粗體二號居中,正文是小四,段落首行縮排2字元,行間距1.5倍。我比較喜歡上彩色的**,因為那樣閱讀起來非常舒服,有時候乾脆直接用**截圖替代。 

就讓我們從日誌元件xlog開始吧! 

xlog是元件體系裡面最最簡單的乙個元件,簡單到只有「乙個類乙個方法」,也就是經常見到的xtrace.writeline。顧名思義,它的用途就是向日誌檔案輸出一行日誌! 

可千萬別小看這個功能,它有著非常重要的地位,基本上每乙個基礎元件都依賴於它。而它從來不參與業務(寫日誌檔案跟業務實在扯不上關係),也就是說即使把它的呼叫**從各個元件中移去,也不會影響元件的工作。 

基本上,我們可以把xlog視為系統守護神,原因有如下幾點: 

1,在元件和應用系統程式中丟擲日誌,記錄系統執行狀況。由於asp.net、winform、service和元件等程式的多樣性,導致了沒有統一的向介面展現執行狀況的功能(廢話,service和元件根本就沒有ui),而寫日誌檔案,則是通用的。 

2,在設計中,我喜歡多留幾手。比如在asp.net中,建議實現global.asa的onerror,把那些未處理異常資訊通過xlog寫入到本地日誌中。經常,客戶說報錯的時候,作為開發人員,基本上不可能到第一現場觀察錯誤提示,這也導致了異常定位非常的困難,大大增加了維護的成本。使用日誌後,一旦某個頁面出錯,即使客戶沒有反饋,系統也能記錄下來,為管理員修正錯誤以及優化系統提供足夠豐富的資訊。 

3,xtrace有兩個writeline方法,可別因為它們跟string.format一樣。而實際上也差不多,只不過支援格式化的writeline對時間型別的引數做了一些特殊處理。 

5,xtrace的debugstack主要用於控制項開發的事件中,輸出當前方法呼叫樹。 

6,xtrace的onwritelog事件可以改變寫日誌的行為。xlog預設把日誌寫到文字檔案中,當掛接onwritelog事件後,就變為有外部決定。最常用的就是控制台程式把日誌重定向到控制台,winform程式把日誌重定向到日誌視窗。 

7,當然,xlog還有writelogeventargs類,用於定義寫日誌事件。 

寫日誌還有乙個關鍵問題,就是多執行緒併發問題。如果多個執行緒都寫日誌,怎麼辦?寫日誌畢竟是io操作,會不會因為寫日誌而影響上層**的執行效率?這些都是xlog所經歷過,並且已經解決了的問題。 

xlog作為其它元件的根基,僅僅是提供了寫日誌的簡單功能,方便開發除錯、執行檢查、錯誤記錄等情況,如果想記錄操作日誌,實在不是最佳選擇。 

乙個元件,如果單獨出來看技術,那就沒有啥意思了。它還需要有合適的使用方案,才能發揮最大的功效,好馬還需要伯樂呀。後面其它元件的講解,大家將可以看到xlog的重要性! 

/files/nnhy/xlog_20100912113511.rar

編譯騰訊mars日誌元件xlog

在命令列中切換到mars libraries下,執行 python build android.py 第乙個出現的選單中選擇 3 第二個選單根據需要依次選擇不同的型別 對於arm平台一般需要4 5 進行編譯,每次編譯後需要把目標檔案拷貝走 編譯後生成的檔案在目錄mars libraries mars...

01 日誌元件XLog

xlog為xcode的日誌元件,為系統基本功能。使用示例 1 新建winform程式 2 引用newlife.core.dll檔案 3 系統啟動前宣告用於winform程式,在program.cs中 xtrace.usewinform xtrace.writeline 系統啟動 4 用法 正常使用為...

事務提交與XLog日誌分析

根據預寫式日誌wal的定義,資料庫在修改磁碟上的元組前,必須先將日誌記錄刷回到磁碟。xlog的組織形式如下,依次為日誌記錄頭,日誌型別 事務操作日誌 事務提交或終止日誌或是檢查點日誌等 備份檔案塊描述資訊以及備份檔案塊資料。資料庫系統把各種需要記錄日誌的資料分類,分配給與他們對應的資源管理器號,系統...