我的代码 (.c) 中有这几行:
#define LOGI(x...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG,x)
#define LOGE(x...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG,x)
我使用它们在 LogCat 中输出,如何修改这些行以将消息写入文件,或者如何在我的代码中从 LogCat 获取某些消息? 提前致谢。
最佳答案
如果这是为了调试目的,我使用这个宏:
#define WRITE_LOG(s, ...) do { \
FILE *f = fopen("/data/local/tmp/log.txt", "a+"); \
fprintf(f, s, __VA_ARGS__); \
fflush(f); \
fclose(f); \
} while (0)
它具有完全独立于 Android SDK/NDK 的优势,允许调试 native 代码而无需修改所有构建系统和包含以链接 logcat 函数。
但有一个小警告:在大多数情况下,我习惯于在启动程序之前在 adb-shell 中使用 touch/data/local/tmp/log.txt
创建文件系统阻止您创建新文件。顺便说一句,位置/data/local/tmp/具有即使没有 root 权限也可以访问的优势。
关于android,NDK, 将日志写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14709773/