static unsigned int dlog_enable = 1;
static unsigned int color_enable = 1;
-static unsigned int debug_level = TDM_LOG_LEVEL_INFO;
static unsigned int need_check_env = 1;
static unsigned int log_lock_init;
static pthread_mutex_t log_lock;
+unsigned int tdm_log_debug_level = TDM_LOG_LEVEL_INFO;
+
static void
_tdm_log_check_env(void)
{
str = getenv("TDM_DEBUG_LEVEL");
if (str)
- debug_level = strtol(str, &end, 10);
+ tdm_log_debug_level = strtol(str, &end, 10);
str = getenv("TDM_DEBUG");
if (str && (strstr(str, "1")))
- debug_level = TDM_LOG_LEVEL_DBG;
+ tdm_log_debug_level = TDM_LOG_LEVEL_DBG;
str = getenv("TDM_DLOG");
if (str && (strstr(str, "0")))
tdm_log_enable_debug(unsigned int enable)
{
if (enable)
- debug_level = TDM_LOG_LEVEL_DBG;
+ tdm_log_debug_level = TDM_LOG_LEVEL_DBG;
else
- debug_level = TDM_LOG_LEVEL_INFO;
+ tdm_log_debug_level = TDM_LOG_LEVEL_INFO;
}
EXTERN void
tdm_log_set_debug_level(int level)
{
- debug_level = level;
+ tdm_log_debug_level = level;
}
EXTERN void
_tdm_log_check_env();
}
- if (level > debug_level)
+ if (level > tdm_log_debug_level)
return;
if (dlog_enable) {
void tdm_log_set_debug_level(int level);
void tdm_log_print(int level, const char *fmt, ...);
+extern unsigned int tdm_log_debug_level;
+
#define TDM_DBG(fmt, args...) \
do { \
- struct timespec ts; \
- clock_gettime(CLOCK_MONOTONIC, &ts); \
- tdm_log_print(TDM_LOG_LEVEL_DBG, "[%5d.%06d][%d][%s %d]"fmt"\n", \
- (int)ts.tv_sec, (int)ts.tv_nsec / 1000, \
- (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args); \
+ if (tdm_log_debug_level >= TDM_LOG_LEVEL_DBG) { \
+ struct timespec ts; \
+ clock_gettime(CLOCK_MONOTONIC, &ts); \
+ tdm_log_print(TDM_LOG_LEVEL_DBG, "[%5d.%06d][%d][%s %d]"fmt"\n", \
+ (int)ts.tv_sec, (int)ts.tv_nsec / 1000, \
+ (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args); \
+ } \
} while (0)
#define TDM_INFO(fmt, args...) \
do { \
- struct timespec ts; \
- clock_gettime(CLOCK_MONOTONIC, &ts); \
- tdm_log_print(TDM_LOG_LEVEL_INFO, "[%5d.%06d][%d][%s %d]"fmt"\n", \
- (int)ts.tv_sec, (int)ts.tv_nsec / 1000, \
- (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args); \
+ if (tdm_log_debug_level >= TDM_LOG_LEVEL_INFO) { \
+ struct timespec ts; \
+ clock_gettime(CLOCK_MONOTONIC, &ts); \
+ tdm_log_print(TDM_LOG_LEVEL_INFO, "[%5d.%06d][%d][%s %d]"fmt"\n", \
+ (int)ts.tv_sec, (int)ts.tv_nsec / 1000, \
+ (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args); \
+ } \
} while (0)
#define TDM_WRN(fmt, args...) \
do { \
- struct timespec ts; \
- clock_gettime(CLOCK_MONOTONIC, &ts); \
- tdm_log_print(TDM_LOG_LEVEL_WRN, "[%5d.%06d][%d][%s %d]"fmt"\n", \
- (int)ts.tv_sec, (int)ts.tv_nsec / 1000, \
- (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args); \
+ if (tdm_log_debug_level >= TDM_LOG_LEVEL_WRN) { \
+ struct timespec ts; \
+ clock_gettime(CLOCK_MONOTONIC, &ts); \
+ tdm_log_print(TDM_LOG_LEVEL_WRN, "[%5d.%06d][%d][%s %d]"fmt"\n", \
+ (int)ts.tv_sec, (int)ts.tv_nsec / 1000, \
+ (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args); \
+ } \
} while (0)
#define TDM_ERR(fmt, args...) \
do { \
- struct timespec ts; \
- clock_gettime(CLOCK_MONOTONIC, &ts); \
- tdm_log_print(TDM_LOG_LEVEL_ERR, "[%5d.%06d][%d][%s %d]"fmt"\n", \
- (int)ts.tv_sec, (int)ts.tv_nsec / 1000, \
- (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args); \
+ if (tdm_log_debug_level >= TDM_LOG_LEVEL_ERR) { \
+ struct timespec ts; \
+ clock_gettime(CLOCK_MONOTONIC, &ts); \
+ tdm_log_print(TDM_LOG_LEVEL_ERR, "[%5d.%06d][%d][%s %d]"fmt"\n", \
+ (int)ts.tv_sec, (int)ts.tv_nsec / 1000, \
+ (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args); \
+ } \
} while (0)
#ifdef __cplusplus