log: check tdm environment value only init
[platform/core/uifw/libtdm.git] / include / tdm_log.h
index 19abde5..de56386 100644 (file)
@@ -9,7 +9,7 @@
  *          Taeheon Kim <th908.kim@samsung.com>,
  *          YoungJun Cho <yj44.cho@samsung.com>,
  *          SooChan Lim <sc1.lim@samsung.com>,
- *          Boram Park <sc1.lim@samsung.com>
+ *          Boram Park <boram1288.park@samsung.com>
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the
@@ -38,6 +38,7 @@
 
 #include <unistd.h>
 #include <sys/syscall.h>
+#include <time.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -63,23 +64,66 @@ enum {
        TDM_LOG_LEVEL_DBG,
 };
 
+void tdm_log_enable_color(unsigned int enable);
 void tdm_log_enable_dlog(unsigned int enable);
-void tdm_log_enable_debug(unsigned int enable);
 void tdm_log_set_debug_level(int level);
+void tdm_log_set_assert_level(int level);
+void tdm_log_set_path(const char *path);
+void tdm_log_printf(int level, const char *fmt, ...);
 void tdm_log_print(int level, const char *fmt, ...);
+void tdm_log_reset(void);
+
+extern unsigned int tdm_log_debug_level;
 
 #define TDM_DBG(fmt, args...) \
-       tdm_log_print(TDM_LOG_LEVEL_DBG, "[%d][%s %d]"fmt"\n", \
-                                 (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args)
+       do { \
+               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, \
+                                                 (int)ts.tv_sec, (int)ts.tv_nsec / 1000, \
+                                                 (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args);  \
+               } \
+       } while (0)
 #define TDM_INFO(fmt, args...) \
-       tdm_log_print(TDM_LOG_LEVEL_INFO, "[%d][%s %d]"fmt"\n", \
-                                 (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args)
+       do { \
+               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, \
+                                                 (int)ts.tv_sec, (int)ts.tv_nsec / 1000, \
+                                                 (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args);  \
+               } \
+       } while (0)
 #define TDM_WRN(fmt, args...) \
-       tdm_log_print(TDM_LOG_LEVEL_WRN, "[%d][%s %d]"fmt"\n", \
-                                 (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args)
+       do { \
+               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, \
+                                                 (int)ts.tv_sec, (int)ts.tv_nsec / 1000, \
+                                                 (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args);  \
+               } \
+       } while (0)
 #define TDM_ERR(fmt, args...) \
-       tdm_log_print(TDM_LOG_LEVEL_ERR, "[%d][%s %d]"fmt"\n", \
-                                 (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args)
+       do { \
+               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, \
+                                                 (int)ts.tv_sec, (int)ts.tv_nsec / 1000, \
+                                                 (int)syscall(SYS_gettid), __FUNCTION__, __LINE__, ##args);  \
+               } \
+       } while (0)
+
+#define TDM_NEVER_GET_HERE() TDM_WRN("** NEVER GET HERE **")
+#define TDM_DEPRECATED(str) \
+       do { \
+               if (str) \
+                       TDM_WRN("** DEPRECATED: %s **", str); \
+               else \
+                       TDM_WRN("** DEPRECATED **"); \
+       } while(0)
 
 #ifdef __cplusplus
 }