58 lines
1.7 KiB
C
58 lines
1.7 KiB
C
#ifndef _QCLOUD_LOG_H_
|
||
#define _QCLOUD_LOG_H_
|
||
|
||
/* 单条日志最大长度 */
|
||
#define QCLOUD_LOG_LEN_MAX (1024)
|
||
|
||
/*用户自定义日志打印函数回调*/
|
||
typedef int (*qcloud_log_handler_t)(const char *message);
|
||
|
||
/**
|
||
* @brief 设置日志回调函数,用户接管日志内容用于输出到文件等操作
|
||
*
|
||
* @param handler 回调函数指针
|
||
*
|
||
*/
|
||
void qcloud_log_handler_set(qcloud_log_handler_t handler);
|
||
|
||
/**
|
||
* @brief 日志打印及上报函数,默认打印到标准输出,当用户设置日志打印handler时,回调handler
|
||
*
|
||
* 当日志上报功能打开时,会将日志缓存后上报到云端日志服务器
|
||
*
|
||
* @param file 源文件名
|
||
* @param func 函数名
|
||
* @param line 行号
|
||
* @param level 日志等级
|
||
*/
|
||
void qcloud_log_write(const char *file, const char *func, const int line, const int level, const char *fmt, ...);
|
||
|
||
/* 日志打印及上报对外接口*/
|
||
|
||
#if (QCLOUD_CFG_LOG_LEVEL >= QCLOUD_LOG_LEVEL_DEBUG)
|
||
#define QCLOUD_LOG_D(args...) qcloud_log_write(__FILE__, __FUNCTION__, __LINE__, QCLOUD_LOG_LEVEL_DEBUG, args)
|
||
#else
|
||
#define QCLOUD_LOG_D(args...)
|
||
#endif
|
||
|
||
#if (QCLOUD_CFG_LOG_LEVEL >= QCLOUD_LOG_LEVEL_INFO)
|
||
#define QCLOUD_LOG_I(args...) qcloud_log_write(__FILE__, __FUNCTION__, __LINE__, QCLOUD_LOG_LEVEL_INFO, args)
|
||
#else
|
||
#define QCLOUD_LOG_I(args...)
|
||
#endif
|
||
|
||
#if (QCLOUD_CFG_LOG_LEVEL >= QCLOUD_LOG_LEVEL_WARN)
|
||
#define QCLOUD_LOG_W(args...) qcloud_log_write(__FILE__, __FUNCTION__, __LINE__, QCLOUD_LOG_LEVEL_WARN, args)
|
||
#else
|
||
#define QCLOUD_LOG_W(args...)
|
||
#endif
|
||
|
||
#if (QCLOUD_CFG_LOG_LEVEL >= QCLOUD_LOG_LEVEL_ERROR)
|
||
#define QCLOUD_LOG_E(args...) qcloud_log_write(__FILE__, __FUNCTION__, __LINE__, QCLOUD_LOG_LEVEL_ERROR, args)
|
||
#else
|
||
#define QCLOUD_LOG_E(args...)
|
||
#endif
|
||
|
||
#endif
|
||
|