现在在分析一个android netd的问题,只要一开启热点,
for (String ifname : added) { try { Log.d(TAG, "TetheredState, processMessage CMD_TETHER_CONNECTION_CHANGED, add mIfaceName =" + mIfaceName + " ifname =" + ifname ); mNetd.tetherAddForward(mIfaceName, ifname); mNetd.ipfwdAddInterfaceForward(mIfaceName, ifname); } catch (RemoteException | ServiceSpecificException e) { mLog.e("Exception enabling NAT: " + e.toString()); cleanupUpstream(); mLastError = TetheringManager.TETHER_ERROR_ENABLE_FORWARDING_ERROR; transitionTo(mInitialState); return true; } }
frameworks/base/packages/Tethering/src/android/net/ip/IpServer.java
mNetd.tetherAddForward调用的时候,在netd进程出错,但是想确认具体错误时,老是无法查看日志,logcat无法打印,经过折腾,发现system/netd/server/TetherController.cpp里的LOG_TAG不是netd,而是下面的
#define LOG_TAG "netdTetherController"
而且,正常情况下,只能打印ALOGE以上的, 可以在logcat里查看
按理说可以更改“LOG_NDEBUG”宏就可以打印ALOGV的,但是不知道为啥,在TetherController.cpp问价能力,添加#define LOG_NDEBUG 0 后,应该是在log.h最前面加的,但是没用,放在log.h后面,编译不通过,后面有时间再看看吧
Android Native如何打开ALOGV级别log和设定TAG_alogv 设置属性 打开_Stang_Tang的博客-CSDN博客
Android C++层LOG_NDEBUG_android log_ndebug_夜风雪的博客-CSDN博客
还有,可以通过dumpsys查看部分record的日志,这个是通过 gLog.log 打印的,与logcat不太一样文章来源:https://www.toymoban.com/news/detail-453020.html
android log的实现,是在 system/core/liblog 里实现的,应该所有的framework和netd,以及android库和进程都会用到它,按理说,修改这里面的LOG_NDEBUG ,会修改整个android系统的LOG显示级别的,但是修改后编译会出问题,后续可以再看看文章来源地址https://www.toymoban.com/news/detail-453020.html
到了这里,关于android log的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!