开天辟地 HarmonyOS(鸿蒙) - 优化: hilog 日志

源码 https://github.com/webabcd/HarmonyDemo
作者 webabcd

开天辟地 HarmonyOS(鸿蒙) - 优化: hilog 日志

示例如下:

pages\optimize\HiLogDemo.ets

/**
 * hilog 日志
 * 在 DevEco Studio -> Log -> HiLog 中可以抓取 hilog 日志,也可以通过 hilog 命令抓取 hilog 日志
 * 每条 hilog 日志的最大长度为 4096 字节,超出则会被截断
 * 如果不想用 hilog 打印日志,也可以通过 console 打印日志
 *
 * 注:
 * 在 release 版本的 app 中默认不会打印 DEBUG 级别的日志
 * 如果需要在 release 版本的 app 中打印 DEBUG 级别的日志,可以执行命令 hdc shell hilog -b D
 */

import { TitleBar } from '../TitleBar'
import { hilog } from '@kit.PerformanceAnalysisKit'

@Entry
@Component
struct HiLogDemo {

  build() {
    Column({ space: 10 }) {
      TitleBar()
      Tabs() {
        TabContent() { MySample1() }.tabBar('基础').align(Alignment.Top)
      }
      .scrollable(true)
      .barMode(BarMode.Scrollable)
    }
  }
}

@Component
struct MySample1 {

  @State message: string = ""

  private readonly DOMAIN: number = 0x0000;
  private readonly TAG: string = 'webabcd';

  aboutToAppear(): void {
    /*
     * 如果调用 hilog.debug(0x0000, 'webabcd', 'MyMessage');
     * 则会打印 09-29 13:58:31.703   2655-2655     A00000/webabcd                  com.webabcd.harmonydemo  D     MyMessage
     *   A00000/webabcd 中的 0000 是 DOMAIN(日志的来源域),本例中用的是 0x0000
     *   A00000/webabcd 中的 A 代表应用级别的日志(Application),如果是 C 开头则代表系统级别的日志(Core Components)
     *   A00000/webabcd 中的 webabcd 是 tag,本例中用的是 webabcd
     *   D 代表 debug 级别的日志
     * 日志级别从小到大排序为 DEBUG, INFO, WARN, ERROR, FATAL
     */
    hilog.debug(this.DOMAIN, this.TAG, "debug"); // debug
    hilog.info(this.DOMAIN, this.TAG, "info"); // info
    hilog.warn(this.DOMAIN, this.TAG, "warn"); // warn
    hilog.error(this.DOMAIN, this.TAG, "error"); // error
    hilog.fatal(this.DOMAIN, this.TAG, "fatal"); // fatal

    /*
     * 支持格式化
     *   %{public}d - 格式化数字类型,且显示
     *   %{public}s - 格式化字符串类型,且显示
     *   %{private}d - 格式化数字类型,但不显示
     *   %{private}s - 格式化字符串类型,但不显示
     *   %d - 同 %{private}d
     *   %s - 同 %{private}s
     */
    hilog.info(this.DOMAIN, this.TAG, "name:%{public}s, age:%{public}d", "webabcd", 44); // name:webabcd, age:44
    hilog.info(this.DOMAIN, this.TAG, "name:%{private}s, age:%{private}d", "webabcd", 44); // name:<private>, age:<private>
    hilog.info(this.DOMAIN, this.TAG, "name:%s, age:%d", "webabcd", 44); // name:<private>, age:<private>

    /*
     * hilog.isLoggable() - 用于判断当前是否支持指定 domain, tag, level 日志的打印
     */
    this.message = `debug: ${hilog.isLoggable(this.DOMAIN, this.TAG, hilog.LogLevel.DEBUG)}` // debug: true
  }

  build() {
    Column({ space: 10 }) {

      Text(this.message)
    }
  }
}

源码 https://github.com/webabcd/HarmonyDemo
作者 webabcd

posted @ 2025-06-13 13:29  webabcd  阅读(14)  评论(0)    收藏  举报