鸿蒙5.0版开发:使用HiLog打印日志(ArkTS)

ops/2024/11/17 19:01:09/

在HarmonyOS 5.0中,HiLog是系统提供的一个日志系统,它允许应用和服务按照指定的级别、标识和格式字符串输出日志内容,帮助开发者了解应用的运行状态,更好地调试程序。本文将详细介绍如何在ArkTS中使用HiLog打印日志,并提供示例代码进行说明。

HiLog日志系统概述

HiLog日志系统提供了五种日志级别:DEBUG、INFO、WARN、ERROR、FATAL。每种级别的日志都有对应的方法来输出日志信息。在ArkTS中,HiLog的接口如下:

  • isLoggable(domain: number, tag: string, level: LogLevel):在打印日志前调用该接口,检查指定领域标识、日志标识和级别的日志是否可以打印。
  • debug(domain: number, tag: string, format: string, …args: any[]):输出DEBUG级别日志,仅用于应用/服务调试。
  • info(domain: number, tag: string, format: string, …args: any[]):输出INFO级别日志,表示普通的信息。
  • warn(domain: number, tag: string, format: string, …args: any[]):输出WARN级别日志,表示存在警告。
  • error(domain: number, tag: string, format: string, …args: any[]):输出ERROR级别日志,表示存在错误。
  • fatal(domain: number, tag: string, format: string, …args: any[]):输出FATAL级别日志,表示出现致命错误、不可恢复错误。

示例代码

以下是一个使用HiLog在ArkTS中打印日志的示例:

import { hilog } from '@kit.PerformanceAnalysisKit';@Entry
@Component
struct LogExample {build() {Column() {Button('Print Log').onClick(() => {// 检查日志是否可以打印if (hilog.isLoggable(0xFF00, "LogExample", hilog.LogLevel.INFO)) {// 打印INFO级别的日志hilog.info(0xFF00, "LogExample", "This is an info log message.");}}).width('100%').height(50)}.width('100%').height('100%').padding(20);}
}

在这个示例中,我们创建了一个按钮组件,并为其添加了点击事件。当按钮被点击时,会检查是否可以打印日志,然后打印一条INFO级别的日志信息。

注意事项

  1. 日志级别:确保在打印日志时使用正确的日志级别,以便于在调试和监控时能够快速定位问题。
  2. 日志截断:日志打印最多打印4096字节,超出限制的文本将被截断。
  3. 日志过滤:在DevEco Studio的Log窗口中,可以设置日志的过滤条件,以便更有效地查看特定日志。

结语

通过本文的介绍,你应该对如何在HarmonyOS 5.0中使用HiLog打印日志有了基本的了解。HiLog是开发和调试过程中的重要工具,合理利用这些日志功能可以使你的应用更加健壮和易于维护。希望本文能够帮助你在开发过程中更好地利用HiLog日志系统。


http://www.ppmy.cn/ops/134503.html

相关文章

qt-5.11.3交叉编译

准备环境和工具 1、主机环境 ubuntu20 2、交叉编译器 gcc-linaro-6.3.1..arm-linux-gnuebihf 3、QT5源码包qt-5.11.3_sources 下载qt-5.11.3的包需要先带网络代理软件,再访问下载目录就可以显示了。 Index of /archive/qt 4、依赖库安装 sudo apt install g m…

单片机 串口实验 实验五

实验五 串口实验 一、实验目的 1、掌握MCS-51单片机串口通信的原理。 2、掌握MCS-51单片机串口通信程序的设计方法及其过程。 3、掌握MCS-51单片机串口通信的电路应用。 二、实验任务 两片单片机分别接一个按键和两个数码管,通过串口通信,实现单…

【学习】HTTP

HTTP 超文本传输协议(HTTP)是一个用于传输超媒体文档(例如 HTML)的应用层协议。它是为 Web 浏览器与 Web 服务器之间的通信而设计的,但也可以用于其他目的。HTTP 遵循经典的客户端—服务端模型,客户端打开…

C/C++ 中有哪些类型转换方式? 分别有什么区别?

在C编写C/C代码的时候,我们经常会遇到发生类型转换的场景,比如 赋值运算符的两个操作数不同、实参和形参类型不同、函数返回值类型和接收返回值的类型不同,都会发生类型转换;所以,在C语言中提供了两种类型转换 —— 隐…

CSM32RV20:RISC-V核的低功耗MCU芯片,常用在智能门锁上

CSM32RV20是一款基于RISC-V核的低功耗MCU芯片。 内置RISC-V RV32IMAC内核(2.6CoreMark/MHz); 蕞高32MHz工作频率; 内置4kB的SRAM; 内置8B的ALWAYS寄存器,能在掉电模式2下保存数据; 内置40kB的嵌…

【Rust调用Windows API】获取正在运行的全部进程信息

前言 WIndows API官方文档 提供了C的调用示例,最近想尝试用Rust去实现,本系列博客记录一下实现过程。 依赖 Rust调用Windows API需要引入依赖winapi,在Cargo.toml中添加依赖 winapi "0.3.9"调用不同的API集就需要使用相应的功…

Python - 初识Python;Python解释器下载安装;Python IDE(一)

一、初识Python Python 是一种高级编程语言,Python是一种面向对象的解释型计算机程序设计语言,Python由荷兰国家数学与计算机科学研究中心的吉多范罗苏姆()Guido van Rossum吉多范罗苏姆()于1989 年底发明…

羊城杯2020Easyphp

审题 看到url,可以想到伪协议读取 尝试过后可以发现,题目绕过了read后面的编码 我们可以尝试双重urlencode进行绕过 ?filephp://filter/read%25%36%33%25%36%66%25%36%65%25%37%36%25%36%35%25%37%32%25%37%34%25%32%65%25%36%32%25%36%31%25%37%33%…