gpt4 book ai didi

android - 定义宏以在android中使用文件和行记录错误

转载 作者:IT老高 更新时间:2023-10-28 21:44:38 32 4
gpt4 key购买 nike

我想制作一个错误日志,其中包含问题正在使用的文件和行。但是我没有找到好的引用。所有代码都使用 JNI,C++ 端。

这次尝试失败:

#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR  , LOG_TAG,"%s %s %s",__VA_ARGS__, __FILE__, __LINE__)

这个只显示msg,没有文件和行

#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR  , LOG_TAG,__VA_ARGS__, __FILE__, __LINE__)

我怎样才能清楚地打印所有信息?是否可以仅打印 __VA_ARGS__ 中的一些参数,例如 __VA_NARG__ ?这类事情的额外信息或有用的引用资料?

最佳答案

非常有趣和有用的问题!我找到了这个解决方案,它可能不是最简单的,但对我有用:

#define LOGE(x...) do { \
char buf[512]; \
sprintf(buf, x); \
__android_log_print(ANDROID_LOG_ERROR,"TAG", "%s | %s:%i", buf, __FILE__, __LINE__); \
} while (0)

这一行:

LOGE("Test: %i", 42)

记录以下内容:

TAG    Test: 42 | path/to/file.cpp:line

如果您打算记录更长的内容,请注意缓冲区的任意 512 长度!

希望这会有所帮助!

关于android - 定义宏以在android中使用文件和行记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19375984/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com