HarmonyOS鸿蒙Next中hilog如何控制日志打印级别

HarmonyOS鸿蒙Next中hilog如何控制日志打印级别 当前hilog C++侧和arkTs侧提供的日志打印API接口,可以通过什么方式控制日志打印的级别,来确保编译出的Release版本的应用不打印debug和info级别的日志。

5 回复
Function Description
isLoggable(domain: number, tag: string, level: LogLevel) 在打印日志前调用该接口,检查指定领域标识、日志标识和级别的日志是否可以打印。

更多关于HarmonyOS鸿蒙Next中hilog如何控制日志打印级别的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个isLoggable并不能控制info级别日志不打印吧,

在HarmonyOS鸿蒙Next中,hilog的日志打印级别可以通过HiLogLabel结构体中的logLevel字段进行控制。logLevel可设置为LOG_DEBUGLOG_INFOLOG_WARNLOG_ERRORLOG_FATAL等不同级别。通过设置不同的级别,可以控制日志的输出范围,例如设置为LOG_ERROR时,只有错误及以上级别的日志会被打印。

在HarmonyOS Next中,可以通过以下方式控制hilog的日志打印级别:

  1. 对于C++侧:
  • 使用HiLogLabel结构体定义日志标签时,可以设置日志级别
  • 通过HiLog::SetLogLevel()接口动态设置全局日志级别
  • 推荐在Release版本中设置为LOG_LEVEL_ERROR或LOG_LEVEL_FATAL
  1. 对于ArkTS侧:
  • 使用hilog模块的setLogLevel()方法设置日志级别
  • 可设置为hilog.LogLevel.ERROR或hilog.LogLevel.FATAL
  • 示例代码:
    import hilog from '[@ohos](/user/ohos).hilog';
    hilog.setLogLevel(hilog.LogLevel.ERROR);
    
  1. 构建配置:
  • 在build-profile.json中配置release编译选项
  • 可以添加预定义宏来控制日志级别
  • 示例:
    "buildOption": {
      "release": {
        "defines": ["RELEASE_BUILD"]
      }
    }
    
  1. 运行时控制:
  • 可以通过系统属性或配置文件动态调整日志级别
  • 使用hilog命令行工具实时修改日志级别

建议在应用初始化时根据编译模式自动设置合适的日志级别,确保Release版本不会输出调试信息。

回到顶部