HarmonyOS 鸿蒙Next 日志输出要加{public}

发布于 1周前 作者 phonegap100 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 日志输出要加{public}

你好: 在封装Native日志输出功能时,发现打印参数需要加"{public}",能不能按照C标准格式化输出,这样方便代码移植。  #define ZDK_LOGE(format, …) OH_LOG_Print(LOG_APP, LOG_INFO, LOG_DOMAIN, “ZhihuiLog”, format, ##VA_ARGS)  鸿蒙:ZDK_LOGE(“zmgtest—%{public}s----2”, ZDK__FUNC);  希望结果:ZDK_LOGE(“zmgtest—%s----2”, ZDK__FUNC);


更多关于HarmonyOS 鸿蒙Next 日志输出要加{public}的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
在鸿蒙系统中,使用HiLog进行日志输出时,可以按照C标准格式化输出。可以使用%{public}标识来替代%d或%s,这样可以确保日志参数按照C标准格式化输出。例如:- 使用%{public}替代%d:printf("%d", x);可以改为printf("%{public}d", x);。- 使用%{public}替代%s:printf("%s", str);可以改为printf("%{public}s", str);。通过这种方式,可以确保在不同的开发环境中都能以相同的格式输出日志,方便代码的移植和维护。

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/hilog-guidelines-ndk-V5

如果使用Hilog的话,只能用这种方式。

更多关于HarmonyOS 鸿蒙Next 日志输出要加{public}的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)Next系统中,如果你需要在日志输出时添加{public}标签,可以通过配置日志系统或自定义日志宏来实现。

鸿蒙系统的日志框架支持灵活的日志级别和格式设置。通常,你可以通过修改日志配置文件来添加前缀、标签或其他自定义信息。但具体到添加{public}标签,这需要你操作日志记录API。

以下是直接修改日志记录点的一种方式:

  1. 自定义日志函数:编写一个封装日志输出的函数,在这个函数中自动添加{public}标签。
void LogWithPublicTag(const char* format, ...) {
    va_list args;
    va_start(args, format);
    char buffer[256];
    vsnprintf(buffer, sizeof(buffer), format, args);
    va_end(args);
    
    // 假设这里有一个系统日志函数Log,例如HarmonyOS的HiLog
    HiLog("INFO", "MY_TAG", "%s{public}", buffer);
}
  1. 使用自定义函数:在你的代码中,用LogWithPublicTag代替原有的日志输出函数。

这样,每次调用LogWithPublicTag时,日志中都会自动带上{public}标签。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部