rename to tdm_log_printf
[platform/core/uifw/libtdm.git] / common / tdm_log.c
index 6e4c517..40a846a 100644 (file)
@@ -75,38 +75,44 @@ EXTERN void
 tdm_log_enable_color(unsigned int enable)
 {
        color_enable = enable;
+       TDM_INFO("color_enable: %d", color_enable);
 }
 
 EXTERN void
 tdm_log_enable_dlog(unsigned int enable)
 {
+       const char *str = getenv("TDM_DLOG");
+       if (str)
+               enable = (str[0] == '1') ? 1 : 0;
        dlog_enable = enable;
-}
-
-EXTERN void
-tdm_log_enable_debug(unsigned int enable)
-{
-       if (enable)
-               tdm_log_debug_level = TDM_LOG_LEVEL_DBG;
-       else
-               tdm_log_debug_level = TDM_LOG_LEVEL_INFO;
+       TDM_INFO("dlog_enable: %d", dlog_enable);
 }
 
 EXTERN void
 tdm_log_set_debug_level(int level)
 {
+       const char *str = getenv("TDM_DEBUG_LEVEL");
+       if (str)
+               level = str[0] - '0';
        tdm_log_debug_level = level;
+       TDM_INFO("debug_level: %d", tdm_log_debug_level);
 }
 
 EXTERN void
 tdm_log_set_assert_level(int level)
 {
+       const char *str = getenv("TDM_ASSERT_LEVEL");
+       if (str)
+               level = str[0] - '0';
        assert_level = level;
+       TDM_INFO("assert_level: %d", assert_level);
 }
 
 EXTERN void
 tdm_log_set_path(const char *path)
 {
+       TDM_INFO("log_path: %s", path);
+
        if (!path) {
                if (stdout_fd != -1) {
                        fflush(stdout);
@@ -131,7 +137,11 @@ tdm_log_set_path(const char *path)
                if (stdout_fd == -1) {
                        fflush(stdout);
                        stdout_fd = dup(STDOUT_FILENO);
-                       TDM_RETURN_IF_FAIL(stdout_fd != -1);
+                       if (stdout_fd < 0) {
+                               TDM_ERR("dup failed: %m\n");
+                               fclose(log_fl);
+                               return;
+                       }
                }
 
                setvbuf(log_fl, NULL, _IOLBF, 512);
@@ -140,23 +150,54 @@ tdm_log_set_path(const char *path)
                close(STDOUT_FILENO);
                dup2(log_fd, STDOUT_FILENO);
                fclose(log_fl);
+               TDM_INFO("log_path: %s done", path);
        }
 }
 
-EXTERN void
-tdm_log_print(int level, const char *fmt, ...)
+static void
+_tdm_log_vprint_stdout(int level, const char *fmt, va_list ap)
 {
-       va_list arg;
-
        if (!log_lock_init) {
                log_lock_init = 1;
                pthread_mutex_init(&log_lock, NULL);
-
        }
 
        if (level > tdm_log_debug_level)
                return;
 
+       char *lvl_str[] = {"TDM_NON", "TDM_ERR", "TDM_WRN", "TDM_INF", "TDM_DBG"};
+       char *color[] = {COLOR_RESET, COLOR_RED, COLOR_YELLOW, COLOR_GREEN, COLOR_RESET};
+
+       pthread_mutex_lock(&log_lock);
+
+       if (color_enable)
+               printf("%s", color[level]);
+       printf("[%s]", lvl_str[level]);
+       if (color_enable)
+               printf(COLOR_RESET);
+       vprintf(fmt, ap);
+       printf("\n");
+       pthread_mutex_unlock(&log_lock);
+}
+
+
+EXTERN void
+tdm_log_printf(int level, const char *fmt, ...)
+{
+       va_list arg;
+       va_start(arg, fmt);
+       _tdm_log_vprint_stdout(level, fmt, arg);
+       va_end(arg);
+}
+
+EXTERN void
+tdm_log_print(int level, const char *fmt, ...)
+{
+       va_list arg;
+
+       if (level > tdm_log_debug_level)
+               return;
+
        if (dlog_enable) {
                log_priority dlog_prio;
                switch (level) {
@@ -179,21 +220,9 @@ tdm_log_print(int level, const char *fmt, ...)
                __dlog_vprint(LOG_ID_SYSTEM, dlog_prio, LOG_TAG, fmt, arg);
                va_end(arg);
        } else {
-               char *lvl_str[] = {"TDM_NON", "TDM_ERR", "TDM_WRN", "TDM_INF", "TDM_DBG"};
-               char *color[] = {COLOR_RESET, COLOR_RED, COLOR_YELLOW, COLOR_GREEN, COLOR_RESET};
-
-               pthread_mutex_lock(&log_lock);
-
-               if (color_enable)
-                       printf("%s", color[level]);
-               printf("[%s]", lvl_str[level]);
-               if (color_enable)
-                       printf(COLOR_RESET);
                va_start(arg, fmt);
-               vprintf(fmt, arg);
+               _tdm_log_vprint_stdout(level, fmt, arg);
                va_end(arg);
-               printf("\n");
-               pthread_mutex_unlock(&log_lock);
        }
 
        assert(level > assert_level);
@@ -202,6 +231,5 @@ tdm_log_print(int level, const char *fmt, ...)
 EXTERN void
 tdm_log_reset(void)
 {
-       pthread_mutex_trylock(&log_lock);
        pthread_mutex_unlock(&log_lock);
 }