惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
博客园_首页
U
Unit 42
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
MongoDB | Blog
MongoDB | Blog
美团技术团队
H
Help Net Security
G
Google Developers Blog
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
aimingoo的专栏
aimingoo的专栏
Google DeepMind News
Google DeepMind News
J
Java Code Geeks
M
MIT News - Artificial intelligence
腾讯CDC
IT之家
IT之家
Vercel News
Vercel News
C
Check Point Blog
博客园 - 三生石上(FineUI控件)
Last Week in AI
Last Week in AI
I
InfoQ
博客园 - 司徒正美
A
About on SuperTechFans

博客园 - webabcd

开天辟地 HarmonyOS(鸿蒙) - 工具: Targets, Products 开天辟地 HarmonyOS(鸿蒙) - 测试: 单元测试 开天辟地 HarmonyOS(鸿蒙) - 优化: HiDebug(用于获取 cpu, 内存等信息) 开天辟地 HarmonyOS(鸿蒙) - 优化: errorManager(捕获未处理异常) 开天辟地 HarmonyOS(鸿蒙) - 优化: HiAppEvent(事件日志) 开天辟地 HarmonyOS(鸿蒙) - 安全: 用户认证 开天辟地 HarmonyOS(鸿蒙) - 安全: 申请权限 开天辟地 HarmonyOS(鸿蒙) - 安全: 关键资产 开天辟地 HarmonyOS(鸿蒙) - 安全: 加密解密 开天辟地 HarmonyOS(鸿蒙) - 信息: CommonEventManager(用于进程间通信,以及订阅系统事件) 开天辟地 HarmonyOS(鸿蒙) - 信息: emitter(用于同一进程内不同线程间或同一线程内发送和订阅事件) 开天辟地 HarmonyOS(鸿蒙) - 信息: 各种信息 开天辟地 HarmonyOS(鸿蒙) - 华为账号: 华为账号的默认登录 开天辟地 HarmonyOS(鸿蒙) - 元服务: 元服务 开天辟地 HarmonyOS(鸿蒙) - 媒体: AVImageGenerator(提取视频指定时间点的图像) 开天辟地 HarmonyOS(鸿蒙) - 媒体: AVMetadataExtractor(提取视频或音频的元数据信息) 开天辟地 HarmonyOS(鸿蒙) - 媒体: AVTranscoder(视频转码) 开天辟地 HarmonyOS(鸿蒙) - 媒体: SoundPool(音效播放器) 开天辟地 HarmonyOS(鸿蒙) - 媒体: AVPlayer(播放器,用于播放视频或音频)
开天辟地 HarmonyOS(鸿蒙) - 优化: hilog 日志
webabcd · 2025-06-13 · via 博客园 - webabcd

源码 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