HarmonyOS_DTSE/IssueSolutionDemos工具函数库:common/utils模块API全解析
1. 模块概述
common/utils模块是HarmonyOS_DTSE/IssueSolutionDemos项目的核心工具库,提供日志管理、组件封装等基础功能。该模块采用ArkTS语言开发,遵循HarmonyOS应用开发最佳实践,通过模块化设计确保代码复用性和可维护性。当前版本主要包含LogUtil日志工具类,为应用开发提供标准化的日志输出能力。
2. 核心API详解
2.1 LogUtil日志工具类
2.1.1 类定义与常量
export class LogUtil {
public static readonly DOMAIN: number = 0xA001110;
public static readonly TAG: string = 'DemoLog::';
public static Open: boolean = true;
// 方法定义...
}
| 常量名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| DOMAIN | number | 0xA001110 | 日志域标识,用于分类不同模块日志 |
| TAG | string | 'DemoLog::' | 日志标签前缀,便于日志过滤 |
| Open | boolean | true | 日志开关,控制是否输出调试日志 |
2.1.2 方法说明
// 调试日志
public static debug(message: string, ...args: Object[])
// 信息日志
public static info(message: string, ...args: Object[])
// 通用日志(默认调用debug)
public static log(message: string, ...args: Object[])
// 警告日志
public static warn(message: string, ...args: Object[])
// 错误日志
public static error(message: string, ...args: Object[])
注意:
debug、info、log方法受Open属性控制,而warn和error无论开关状态始终输出。
2.2 典型应用场景
2.2.1 基础日志输出
import { LogUtil } from '@common/utils';
// 应用初始化
LogUtil.info('应用启动,版本号: %s', '1.0.0');
// 业务逻辑调试
try {
// 执行可能出错的操作
const result = complexCalculation();
LogUtil.debug('计算结果: %d', result);
} catch (e) {
LogUtil.error('计算失败: %s', e.message);
}
2.2.2 日志开关控制
// 生产环境关闭调试日志
if (isReleaseMode()) {
LogUtil.Open = false;
LogUtil.warn('已关闭调试日志输出');
}
3. 架构设计与实现原理
3.1 类图设计
3.2 日志处理流程
4. 最佳实践指南
4.1 日志使用规范
-
分类使用日志级别
- DEBUG: 开发调试信息,包含变量值、流程节点
- INFO: 业务流程关键点,如"用户登录成功"
- WARN: 非致命异常,如"缓存过期"
- ERROR: 严重错误,需记录完整堆栈信息
-
日志格式建议
// 推荐格式:[模块名] 操作描述: 参数信息 LogUtil.debug('[UserService] 用户数据加载完成: %d 条记录', userList.length);
4.2 性能优化建议
-
循环中避免频繁输出调试日志
// 不推荐 for (const item of largeList) { LogUtil.debug('处理元素: %s', item.id); // 可能导致性能问题 } // 推荐 LogUtil.debug('开始处理列表,共 %d 个元素', largeList.length); -
敏感信息过滤
// 日志中避免直接输出密码、Token等敏感信息 LogUtil.info('用户登录成功: userId=%s, token=***', userId);
5. 模块集成与扩展
5.1 模块引用方式
在项目模块的oh-package.json5中添加依赖:
{
"dependencies": {
"@common/utils": "file:../../common/utils"
}
}
5.2 扩展开发指南
如需扩展工具类,建议遵循以下步骤:
- 在
src/main/ets/util目录下创建新工具类文件(如StorageUtil.ets) - 在Index.ets中导出新工具类:
export { LogUtil } from './src/main/ets/util/logUtil'; export { StorageUtil } from './src/main/ets/util/storageUtil'; // 新增导出 - 添加单元测试文件(建议路径:
src/test/ets/[utilName]Test.ets)
6. 常见问题解决
Q1: 为什么调试日志不输出?
A1: 检查LogUtil.Open是否为true,或当前环境是否被配置为生产模式。
Q2: 如何在HVD模拟器中查看日志?
A2: 通过DevEco Studio的Logcat工具,设置过滤条件tag:DemoLog::即可查看本模块输出日志。
Q3: 能否自定义日志格式?
A3: 当前版本暂不支持自定义格式,可通过继承LogUtil类并重写方法实现个性化需求。
7. 版本历史与更新计划
| 版本 | 日期 | 变更内容 |
|---|---|---|
| 1.0.0 | 2024-Q1 | 初始版本,实现基础日志功能 |
| 1.1.0 | 2024-Q3 | 添加日志开关控制,优化性能 |
未来计划:
- 增加日志持久化功能
- 实现日志分级存储策略
- 添加日志加密传输支持
8. 附录:完整API速查表
| 方法签名 | 说明 | 受开关控制 |
|---|---|---|
| debug(message: string, ...args: Object[]) | 调试日志 | 是 |
| info(message: string, ...args: Object[]) | 信息日志 | 是 |
| log(message: string, ...args: Object[]) | 通用日志 | 是 |
| warn(message: string, ...args: Object[]) | 警告日志 | 否 |
| error(message: string, ...args: Object[]) | 错误日志 | 否 |
本文档基于common/utils模块v1.1.0版本编写,最新API请参考源码实现。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



