下載安裝成功後開啟Legit Log Viewer,可以看到一個展示用的log檔Demo Log.tmp.log,位於資料夾C:\Users\Pete\AppData\Local\Temp\底下。從畫面上我們也可以看到所使用的Log Format為NLog (Legit Log custom layout)。
用文字編輯軟體開啟這個log檔可以發現每一列的資料都含有|符號。Legit Log Viewer會把每個以|符號區隔開來的資料當作是一個欄位。以下面的log檔來說,每列以5個|符號區隔資料,所以在Legit Log Viewer上會顯示6個欄位。
Legit Log Viewer在載入log檔時會先檢查目前所有的Log Format中的定義檔(例如NLog (Legit Log custom layout))哪個符合log檔的格式,找到的話便會依照定義檔內所定義的方式顯示log檔。如果要顯示符合自訂格式的log檔,我們需先建立一個Log Format定義檔。
點選Tools-> Edit Log Formats,可以看到目前所有的定義檔。
點選NLog (Legit Log custom layout)並按下Save for Edit按鈕,將內建的定義檔重新命名另存新檔。
開啟剛儲存的定義檔可以看到其內容為XML格式。
<?xml version="1.0" encoding="utf-8" ?> <LogFormat xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.legitlog.com/LogFormatSchema.xsd" FormatName="NLog (Legit Log custom layout)"> <Description> Log format for Legit Log NLog layout. ${processid}|${longdate}|${level:uppercase=true}|${event-context:item=Context}|${logger}|${message} </Description> <LogLine> <Fields> <LogFieldFormat Name="ProcessId" FieldType="Int" Delimiter="|" FilterColumn="true" HighlightRows="true" /> <LogFieldFormat Name="DateTime" FieldType="DateTime" Delimiter="|" Format="yyyy-MM-dd HH:mm:ss.ffff" /> <LogFieldFormat Name="Level" FieldType="String" Delimiter="|" FilterColumn="true" HighlightRows="true" /> <LogFieldFormat Name="Context" FieldType="String" Delimiter="|" FilterColumn="true" /> <LogFieldFormat Name="Logger" FieldType="String" Delimiter="|" /> <LogFieldFormat Name="Message" FieldType="String" Delimiter="
" Multiline="true" /> </Fields> </LogLine> </LogFormat>設定檔的格式其實蠻直覺的,每個<LogFieldFormat>代表一個欄位,屬性Name為欄位標頭名稱,FieldType為欄位類型,Delimiter為資料分隔符號。<LogFormat>的FormatName屬性為定義檔的名稱,你可以修改為較有意義的名稱,例如專案名稱。<Description>內的文字則是用來當我們在Legit Log Viewer中點選此定義檔時要顯示的描述文字,例如顯示此定義檔使用的log檔layout格式(設定在NLog設定檔中<target>裡的layout屬性)為何,如範例中的${processid}|${longdate}|${level:uppercase=true}|${event-context:item=Context}|${logger}|${message}。
修改完定義檔後,點選Add new format按鈕加入定義檔便可在列表中看到自訂的定義檔。我們可以利用Move up把自定義檔移到最上方做為最優先被Legit Log Viewer選擇到的定義檔。
以下有幾點需額外注意
- Multiline屬性只能出現在最後一個LogFieldFormat中,否則載入定義檔時會出現錯誤訊息。因此也建議如果要顯示多行資料的話最好放在最後一欄。
- 載入定義檔後,若之後定義檔有任何修改,必須先刪除原來的定義檔後再重新載入才會生效,這部份算是使用上較為不方便的地方
接下來至Logs-> Open Log載入要檢視的log檔便可顯示在Legit Log Viewer裡。載入後我們可以透過Message filter功能輸入關鍵字來過濾出我們想要的資訊。
若log檔內容有更新,Legit Log Viewer也會提醒使用者是否顯示更新過後的內容。
No comments:
Post a Comment