}
}
-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_print_stdout(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) {
__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);
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_print_stdout(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;