HarmonyOS 鸿蒙Next 编译的C++ so库中如何在Dev中打印日志
HarmonyOS 鸿蒙Next 编译的C++ so库中如何在Dev中打印日志 在鸿蒙应用中集成了C++ so库文件,需要将库文件中的日志在Dev Studio中打印出来,否则so库就像黑盒一样无法定位问题,目前使用的C++printf无法在Dev中看到,请问有什么好办法
我们系统的编写人员是用hilog,但是具体怎么引入啥的你得去看鸿蒙源码,我只是个写应用的。
我引用的是第三库C++库,里面有很多printf
的调试日志。用deveco中使用napi调用第三方库,没法看日志了,这个目前解不了?
我找到了这个教程 ,可以使用hilog打印.so里的C++的log
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/hilog-guidelines-ndk-V13
鸿蒙无人?
在HarmonyOS鸿蒙Next中,编译C++ so库时,可以使用hilog
库来打印日志。hilog
是鸿蒙系统提供的一个日志工具,支持不同级别的日志输出。以下是一个简单的示例,展示如何在C++代码中使用hilog
打印日志:
-
首先,确保在
BUILD.gn
文件中添加了对hilog
库的依赖:deps = [ "//foundation/communication/interfaces/innerkits/hilog:libhilog", ]
-
在C++代码中引入
hilog
头文件:#include "hilog/log.h"
-
使用
hilog
打印日志。hilog
提供了不同级别的日志输出方法,如HILOG_DEBUG
、HILOG_INFO
、HILOG_WARN
、HILOG_ERROR
等。以下是一个简单的示例:#include "hilog/log.h" static constexpr OHOS::HiviewDFX::HiLogLabel LABEL = {LOG_CORE, 0xD001800, "MY_TAG"}; void exampleFunction() { HILOG_DEBUG(LABEL, "This is a debug log."); HILOG_INFO(LABEL, "This is an info log."); HILOG_WARN(LABEL, "This is a warning log."); HILOG_ERROR(LABEL, "This is an error log."); }
-
编译并运行代码,日志将输出到系统的日志系统中,可以通过
hilog
命令行工具查看:hilog
通过以上步骤,你可以在鸿蒙Next的C++ so库中使用hilog
打印日志。