HarmonyOS 鸿蒙Next 日志输出要加{public}
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。
以下是直接修改日志记录点的一种方式:
- 自定义日志函数:编写一个封装日志输出的函数,在这个函数中自动添加
{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);
}
- 使用自定义函数:在你的代码中,用
LogWithPublicTag
代替原有的日志输出函数。
这样,每次调用LogWithPublicTag
时,日志中都会自动带上{public}
标签。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html