官术网_书友最值得收藏!

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 日志輸出信息

主站蜘蛛池模板: 庆元县| 龙里县| 竹山县| 鹤岗市| 卢龙县| 巴楚县| 盐亭县| 行唐县| 天门市| 新昌县| 天津市| 黔江区| 凌源市| 五指山市| 徐州市| 翁源县| 门源| 驻马店市| 临潭县| 宁安市| 清新县| 肃宁县| 类乌齐县| 介休市| 芜湖市| 明溪县| 娄底市| 同德县| 彩票| 辽阳市| 福鼎市| 兴文县| 普安县| 大竹县| 石门县| 延津县| 广汉市| 广灵县| 丰原市| 天水市| 万山特区|