目录
MTK平台Log机制解析
- log定义
#define MY_LOGV(fmt, arg...) CAM_ULOGMV("%d[CameraDevice3Impl::%s] " fmt, getInstanceId(), __FUNCTION__, ##arg)
#define MY_LOGD(fmt, arg...) CAM_ULOGMD("%d[CameraDevice3Impl::%s] " fmt, getInstanceId(), __FUNCTION__, ##arg)
#define MY_LOGI(fmt, arg...) CAM_ULOGMI("%d[CameraDevice3Impl::%s] " fmt, getInstanceId(), __FUNCTION__, ##arg)
#define MY_LOGW(fmt, arg...) CAM_ULOGMW("%d[CameraDevice3Impl::%s] " fmt, getInstanceId(), __FUNCTION__, ##arg)
#define MY_LOGE(fmt, arg...) CAM_ULOGME("%d[CameraDevice3Impl::%s] " fmt, getInstanceId(), __FUNCTION__, ##arg)
#define MY_LOGA(fmt, arg...) CAM_LOGA("%d[CameraDevice3Impl::%s] " fmt, getInstanceId(), __FUNCTION__, ##arg)
#define MY_LOGF(fmt, arg...) CAM_LOGF("%d[CameraDevice3Impl::%s] " fmt, getInstanceId(), __FUNCTION__, ##arg)
- 以CAM_ULOGMW为例,定义如下:
#define CAM_ULOGMW(_fmt, _args...) CAM_ULOGW(__ULOG_MODULE_ID, _fmt, ##_args)
#define CAM_ULOGW(_module, _fmt, _args...) \
do { \
NSCam::Utils::ULog::ModuleId _uModuleId = NSCam::Utils::ULog::getULogModuleId(_module); \
if (NSCam::Utils::ULog::ULogger::isNormalDetailsEnabled(_uModuleId, NSCam::Utils::ULog::DETAILS_WARNING)) { \
if (NSCam::Utils::ULog::ULogger::isPlatformModeEnabled()) { ALOGW(_fmt, ##_args); } \
if (NSCam::Utils::ULog::ULogger::isFileModeEnabled()) { \
CAM_ULOG_DETAILS_FILE(_uModuleId, NSCam::Utils::ULog::DETAILS_WARNING, _fmt, ##_args); \
} \
} \
} while (0)
这里面有一个__ULOG_MODULE_ID参数,代表的是camera具体的模块,每个文件开头都有一个CAM_ULOG_DECLARE_MODULE_ID定义,实际定义如下:
#define CAM_ULOG_DECLARE_MODULE_ID(_moduleId) \
__ULOG_MAYBE_UNUSED__ static constexpr NSCam::Utils::ULog::ModuleId __ULOG_MODULE_ID = NSCam::Utils::ULog::_moduleId ;
以CameraDevice3Impl.cpp为例,开头声明了