发布时间:2026/7/22 20:30:08
鸿蒙三方库 | harmony-utils之LogUtil日志输出与级别控制详解 前言日志是开发调试和问题排查的重要工具。pura/harmony-utils的LogUtil封装了日志输出方法支持不同日志级别和标签管理让日志输出更加规范和可控。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、LogUtil核心APILogUtil提供了以下日志输出方法方法说明参数使用场景debug(tag, msg)输出DEBUG级别日志tag, msg调试信息info(tag, msg)输出INFO级别日志tag, msg一般信息warn(tag, msg)输出WARN级别日志tag, msg警告信息error(tag, msg)输出ERROR级别日志tag, msg错误信息setLogLevel(level)设置日志级别level级别控制1.1 核心特性简洁易用封装复杂API为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理内置异常捕获机制避免运行时崩溃级别控制支持动态设置日志输出级别1.2 日志级别对照级别常量说明生产环境DEBUGLogLevel.DEBUG调试信息不输出INFOLogLevel.INFO一般信息可选WARNLogLevel.WARN警告信息输出ERRORLogLevel.ERROR错误信息输出二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 输出不同级别日志import{LogUtil}frompura/harmony-utils;Button(输出DEBUG日志).width(100%).onClick((){LogUtil.debug(MyApp,这是一条调试日志);this.resultDEBUG日志已输出 ;})Button(输出INFO日志).width(100%).onClick((){LogUtil.info(MyApp,这是一条信息日志);this.resultINFO日志已输出 ℹ️;})Button(输出ERROR日志).width(100%).onClick((){LogUtil.error(MyApp,这是一条错误日志);this.resultERROR日志已输出 ❌;})2.3 设置日志级别Button(设置日志级别).width(100%).onClick((){LogUtil.setLogLevel(LogLevel.INFO);this.result日志级别已设为INFO\n低于INFO的日志将不输出;})三、完整页面示例import{LogUtil}frompura/harmony-utils;EntryComponentstruct LogDemo{Stateresult:string;build(){Column({space:12}){Button(输出全部级别日志).width(100%).onClick((){LogUtil.debug(Demo,调试信息);LogUtil.info(Demo,一般信息);LogUtil.warn(Demo,警告信息);LogUtil.error(Demo,错误信息);this.result四级日志已输出\n查看HiLog查看日志;});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 日志工具类封装import{LogUtil}frompura/harmony-utils;classAppLogger{privatestaticTAGMyApp;staticd(msg:string):void{LogUtil.debug(AppLogger.TAG,msg);}statici(msg:string):void{LogUtil.info(AppLogger.TAG,msg);}staticw(msg:string):void{LogUtil.warn(AppLogger.TAG,msg);}statice(msg:string):void{LogUtil.error(AppLogger.TAG,msg);}}4.2 条件日志输出functionlogIf(condition:boolean,tag:string,msg:string):void{if(condition){LogUtil.info(tag,msg);}}五、注意事项标签规范建议使用统一的标签命名规范级别控制生产环境建议设置为WARN或ERROR敏感信息不要在日志中输出敏感信息初始化依赖使用前需确保AppUtil.init()已调用日志量避免在高频方法中输出大量日志六、常见问题Q1: 日志在HiLog中看不到检查日志级别设置确保当前级别允许输出。同时检查HiLog的过滤条件。Q2: setLogLevel()设置后不生效确认设置时机是否正确建议在应用启动时设置。Q3: 如何查看日志使用DevEco Studio的HiLog工具或通过 hdc hilog 命令查看。Q4: 日志输出影响性能吗大量日志输出会影响性能生产环境建议设置较高级别。总结LogUtil的日志输出方法为开发调试提供了规范化支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。合理使用日志级别和标签可以提高开发效率和问题排查速度。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。

相关新闻

2026/7/22 20:25:08

ADI AD7980国产替代 | 士模CM2221,16 位 1MSPS SAR ADC

CM2221是士模推出的一款全正向自研16位单通道1MSPS SAR ADC, CM2221(完全兼容AD7980, VDD2.5V)适用于工业自动化设备、精密仪表、医疗仪器模拟量采集等场景。【CM2221产品亮点】1、完美替代 AD7980: 引脚定义、SPI 时序…

2026/7/22 21:30:13

程序员转行大模型!一套8周完整规划直接上岸!!!

AI对各行各业的渗透已经无需多说,无疑是2025年的热门关键字,很多公司都在转型做AI相关的产品,或者高薪挖相关的技术人才。 有往AI方向发展,或者有一些后端编程基础的朋友,可以考虑直接转岗做AI大模型应用开发。 就算你…

2026/7/22 21:30:13

AI 智能体框架主流平台与应用选型

如今,AI 的焦点已经从“大模型对话”全面转向了 “AI Agent(智能体)行动”。 各种智能体框架、工作流平台、代码辅助工具层出不穷。但面对满天飞的概念和工具,你是否也面临着这些困境:❓ 工具焦虑: Dify、n…

2026/7/22 9:29:13

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/22 0:02:17

抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具

抓包代理链路下的 TLS 指纹变化分析:为什么调试环境会影响访问结果 摘要 在网页调试、接口联调、自动化巡检和授权采集排查中,抓包是常见手段。但很多开发者会遇到一个现象:正常访问页面时没有问题,一进入抓包或代理调试环境&…

2026/7/22 0:02:17

微信QQ聊天记录误删恢复与备份方案全指南

1. 聊天记录误删的常见场景与恢复思路作为一名长期关注数据安全的技术博主,我处理过上百起聊天记录误删的求助案例。手机误操作、系统升级失败、设备损坏是三大常见诱因。上周就遇到用户更新微信时断电,导致近两年的工作群聊记录全部消失的极端案例。不同…

2026/7/22 0:02:17

2026最新8款个人AI编程免费工具深度实测

作为一名全栈独立开发者,我最近半年一直在折腾副业项目,每个月在AI编程工具上的订阅费算下来其实也不算便宜。作为个人开发者,我们追求的就是用最少的成本获得最高效的开发体验。TRAE 基础版免费,字节跳动出品的国内首款 AI 原生 …

2026/7/22 21:00:12

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…