HarmonyOS NEXT hiLog日志类封装

举报
水滴石轩 发表于 2025/03/13 19:19:08 2025/03/13
316 0 1
【摘要】 在鸿蒙原生开发中,推荐使用hiLog日志来打印我们需要查看的数据,在写hiLog日志时,需要入参四个参数来设置hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');其中第一个参数domain,是不需要处理的,按照默认值来展示就好;第二个参数 prefix,在封装类中我们可以统一设置同一个值,方便检...

在鸿蒙原生开发中,推荐使用hiLog日志来打印我们需要查看的数据,在写hiLog日志时,需要入参四个参数来设置



hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');

其中第一个参数domain,是不需要处理的,按照默认值来展示就好;

第二个参数 prefix,在封装类中我们可以统一设置同一个值,方便检索同一个应用下的日志信息,筛除掉系统日志和隐藏应用的日志影响,提高我们定位问题的效率;

第三个参数和第四个参数是相互对照的,需要指定相应参数打印的方式,是public还是private;正常我们debug开发时,全部设置为public就好,发release时需要设置debugModel模式,避免用户使用时,因HiLog日志打印影响性能



const MAX_LENGTH = 3500;

  static debug(...args: string[]): void {
    if (this.isModelDebug) {
      if (!args || args.length < 1) {
        return;
      }

      let argsLength = args.length;
      let format = '';
      let length = 0;
      let index = 0;
      for (index = 0; index <= argsLength - 1; index++) {
        format = format + '%{public}s,';
        let currentLength = length + args[index]?.length;
        if (currentLength > MAX_LENGTH) {
          args[index] = args[index].substring(0, MAX_LENGTH-length);
          index ++;
          break;
        } else {
          length = currentLength;
        }
      }

      format = format.substring(0, format.length - 1);
      hilog.debug(0x0000, 'CustomPrefix', format, args.slice(0, index));
    }
  }

MAX_LENGTH设置是为了一次打印太多数据影响我们调试,这个也可以根据个人业务需求来设置。

----------------- end ---------------

后面会继续补充不足之处。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。