- 鴻蒙操作系統應用開發實踐
- 陳美汝 鄭森文等
- 868字
- 2022-07-28 19:33:58
1.8 日志管理工具
HarmonyOS為開發者提供了HiLog日志系統,讓應用可以按照指定類型、指定級別、指定格式字符串輸出日志內容,幫助開發者了解應用的運行狀態,以便更好地調試程序。
輸出日志的接口由HiLog類提供。HiLog中定義了5種日志級別,用于輸出不同級別的日志信息。
(1)Debug:輸出Debug級別的日志。Debug級別日志表示僅用于應用調試,默認不輸出,輸出前需要在設備的“開發人員選項”中打開“USB調試”開關。
(2)Info:輸出Info級別的日志。Info級別日志表示普通的信息。
(3)Warn:輸出Warn級別的日志。Warn級別日志表示存在警告。
(4)Error:輸出Error級別的日志。Error級別日志表示存在錯誤。
(5)Fatal:輸出Fatal級別的日志。Fatal級別日志表示出現致命錯誤、不可恢復錯誤。
這里在Hello World項目中體驗一下日志工具。
首先在輸出日志前,需要調用HiLog的輔助類HiLogLabel來定義日志標簽。打開MainAbility.java文件,在其中定義HiLogLabel類實例,代碼如下:
static final HiLogLabel label = new HiLogLabel(HiLog.LOG_APP,0x00201,"MY_TAG");
其中,HiLog.LOG_APP用于指定輸出日志的類型,當前HiLog中只提供了一種日志類型,即應用日志類型LOG_APP。0x00201用于指定輸出日志所對應的業務領域,取值范圍為0x0~0xFFFFF,可以根據需要自定義。MY_TAG用于指定日志標識,可以設置為任意的字符串。
這里輸出一條Warn級別的日志信息,代碼如下:
//輸出一條Warn級別的日志信息 public class MainAbility extends Ability { static final HiLogLabel label = new HiLogLabel(HiLog.LOG_App,0x00201,"MY_TAG"); private String URL = "www.***.com"; public int errno = 503; @Override public void onStart(Intent intent){ super.onStart(intent); super.setMainRoute(MainAbilitySlice.class.getName()); HiLog.warn(label,"Failed to visit%{private}s,reason:%{public}d.",URL,errno); } }
其中,定義了虛擬的一個URL網址字符串和一個錯誤碼errno,在Hilog.warn()日志輸出語句中,第一個參數label為定義好的HiLog Label標簽,第二個雙引號內的參數為字符串,用于日志的格式化輸出,其中也可以設置多個參數,上述代碼中的%s、%d表示參數類型為string和int的變參標識,URL和errno的參數類型和數量必須與標識一一對應。每個參數需添加隱私標識,分為{public}或{private},默認為{private},{public}表示日志打印結果可見,{private}表示日志打印結果不可見。
這時運行程序,在下方的HiLog窗口中可以查看日志信息,當日志信息較多時,可以通過設置設備信息、進程、日志級別和搜索關鍵詞來篩選日志信息。如這里根據運行情況選擇了設備信息和進程信息,然后選擇Warn級別的日志,可以根據設置的0x00201或MY_TAG進行日志的篩選和查找。這里搜索00201,就得到了對應的日志信息,如圖1.47所示。

圖1.47 日志輸出信息
- Mastering vRealize Operations Manager(Second Edition)
- Windows Server 2019 Cookbook
- Learning Windows Server Containers
- 從零開始寫Linux內核:一書學透核心原理與實現
- Linux內核完全注釋(20周年版·第2版)
- Linux網絡操作系統與實訓(第三版)
- 嵌入式Linux系統開發:基于Yocto Project
- Windows Phone 7.5 Data Cookbook
- 構建可擴展分布式系統:方法與實踐
- 鴻蒙操作系統設計原理與架構
- Linux應用大全 基礎與管理
- Linux內核API完全參考手冊(第2版)
- iOS 10快速開發:18天零基礎開發一個商業應用
- 完美應用Ubuntu(第2版)
- Agile IT Security Implementation Methodology