日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HarmonyOS之调试分析打印HiLog日志

發布時間:2024/5/21 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HarmonyOS之调试分析打印HiLog日志 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、HiLog 日志

  • HarmonyOS 提供了 HiLog 日志系統,讓應用可以按照指定類型、指定級別、指定格式字符串輸出日志內容,幫助開發者了解應用的運行狀態,更好地調試程序。
  • 輸出日志的接口由 HiLog 類提供,在輸出日志前,需要先調用 HiLog 的輔助類 HiLogLabel 定義日志標簽。

二、定義日志標簽

  • 使用 HiLogLabel(int type, int domain, String tag)定義日志標簽,其中包括了日志類型、業務領域和 TAG。使用示例:
static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "MY_TAG");
  • 參數說明:
    • 參數 type:用于指定輸出日志的類型。HiLog 中當前只提供了一種日志類型,即應用日志類型 LOG_APP。
    • 參數 domain:用于指定輸出日志所對應的業務領域,取值范圍為0x0~0xFFFFF,開發者可以根據需要進行自定義。
    • 參數 tag:用于指定日志標識,可以為任意字符串,建議標識調用所在的類或者業務行為。
  • 開發者可以根據自定義參數 domain 和 tag 來進行日志的篩選和查找。

三、輸出日志

  • HiLog 中定義了 DEBUG、INFO、WARN、ERROR、FATAL 五種日志級別,并提供了對應的方法用于輸出不同級別的日志。
  • HiLog 提供的主要接口:
接口名功能描述
debug?(HiLogLabel label, String format, Object… args)輸出DEBUG級別的日志。DEBUG級別日志表示僅用于應用調試,默認不輸出,輸出前需要在設備的“開發人員選項”中打開“USB調試”開關
info?(HiLogLabel label, String format, Object… args)輸出INFO級別的日志。INFO級別日志表示普通的信息
warn?(HiLogLabel label, String format, Object… args)輸出WARN級別的日志。WARN級別日志表示存在警告
error?(HiLogLabel label, String format, Object… args)輸出ERROR級別的日志。ERROR級別日志表示存在錯誤
fatal?(HiLogLabel label, String format, Object… args)輸出FATAL級別的日志。FATAL級別日志表示出現致命錯誤、不可恢復錯誤
  • 參數說明:
    • 參數 label:定義好的 HiLogLabel 標簽。
    • 參數 format:格式字符串,用于日志的格式化輸出。格式字符串中可以設置多個參數,例如格式字符串為“Failed to visit %s.”,“%s”為參數類型為 string 的變參標識,具體取值在 args 中定義。每個參數需添加隱私標識,分為{public}或{private},默認為{private}。{public}表示日志打印結果可見;{private}表示日志打印結果不可見,輸出結果為 < private >。
    • 參數 args:可以為0個或多個參數,是格式字符串中參數類型對應的參數列表。參數的數量、類型必須與格式字符串中的標識一一對應。
  • 以輸出一條 WARN 級別的信息為例,示例代碼:
HiLog.warn(LABEL, "Failed to visit %{private}s, reason:%{public}d.", url, errno);
  • 該行代碼表示輸出一個日志標簽為 label 的警告信息,格式字符串為:“Failed to visit %{private}s, reason:%{public}d.”。其中變參 url 的格式為私有的字符串,errno 為公共的整型數。

四、查看日志信息

  • DevEco Studio 提供了 HiLog 窗口查看日志信息,開發者可通過設置設備、進程、日志級別和搜索關鍵詞來篩選日志信息。搜索功能支持使用正則表達式,開發者可通過搜索自定義的業務領域值和 TAG 來篩選日志信息。
  • 如示例所示,根據實際情況選擇了設備和進程后,搜索業務領域值“00201”進行篩選,得到對應的日志信息。

  • 結果輸出:
06-23 16:08:36.908 23597-23597/com.example.myapplication W 00201/MY_TAG: Failed to visit <private>, reason:503.
  • 結果分析:
    • W 表示日志級別為 WARN。
    • 00201/MY_TAG 為開發者在 HiLogLabel 中定義的內容。
    • 日志內容中的 url 為私有參數不顯示具體內容,僅顯示 < private >。errno 為公有參數,顯示實際取值 503。

五、日志打印實例

  • 在按鈕中增加一個點擊事件,點擊按鈕時打印一條日志。
  • 新建一個工程,選擇 Java 的空白模板。
  • 新建一個工程,在“Project”窗口點擊“entry > src > main > java > 應用包名 > slice”,打開工程中的“MainAbilitySlice.java”文件,添加一個按鈕,實現點擊按鈕打印一條日志,示例代碼如下:
package com.example.myapplication.slice; // 請開發者根據實際情況寫包名import ohos.aafwk.ability.AbilitySlice;import ohos.aafwk.content.Intent;import ohos.agp.components.Button;import ohos.agp.components.DirectionalLayout;import ohos.hiviewdfx.HiLog;import ohos.hiviewdfx.HiLogLabel;public class MainAbilitySlice extends AbilitySlice {// 定義日志標簽private static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "MY_TAG");@Overridepublic void onStart(Intent intent) {super.onStart(intent);// 添加一個按鈕DirectionalLayout directionalLayout = new DirectionalLayout(getContext());Button button = new Button(getContext());button.setText("Click!");button.setTextSize(200);if (button != null) {// 為按鈕設置點擊回調button.setClickedListener(component -> {// 打印一條日志HiLog.info(LABEL, "Hey! You have successfully printed a log.");});}directionalLayout.addComponent(button);super.setUIContent(directionalLayout);}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);}}
  • 在模擬器或者真機上運行項目,點擊應用界面上的按鈕。
  • 在 DevEco Studio 的底部,切換到“HiLog”窗口,設置日志的過濾條件。
    選擇當前的設備及進程,日志級別選擇 Info,搜索內容設置為“00201”。此時窗口僅顯示符合條件的日志,效果如圖所示:

總結

以上是生活随笔為你收集整理的HarmonyOS之调试分析打印HiLog日志的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。