3 #include "hal-tdm-types.h"
6 #define TDM_PATH_LEN 1024
8 #define COLOR_RED "\x1b[31m" /* for error */
9 #define COLOR_YELLOW "\x1b[33m" /* for warning */
10 #define COLOR_GREEN "\x1b[32m" /* for info */
11 #define COLOR_RESET "\x1b[0m"
14 static unsigned int dlog_enable = 1;
16 static unsigned int dlog_enable = 0;
18 static unsigned int color_enable = 1;
20 unsigned int tdm_log_debug_level = HAL_TDM_LOG_LEVEL_INFO;
22 static int stdout_fd = -1;
25 tdm_log_set_path(const char *path)
28 if (stdout_fd != -1) {
31 dup2(stdout_fd, STDOUT_FILENO);
36 char fd_name[TDM_PATH_LEN];
40 snprintf(fd_name, TDM_PATH_LEN, "%s", path);
42 log_fl = fopen(fd_name, "a");
44 HAL_TDM_ERR("failed: open file(%s)\n", fd_name);
48 if (stdout_fd == -1) {
50 stdout_fd = dup(STDOUT_FILENO);
52 HAL_TDM_ERR("dup failed: %m\n");
58 setvbuf(log_fl, NULL, _IOLBF, 512);
59 log_fd = fileno(log_fl);
62 dup2(log_fd, STDOUT_FILENO);
68 _tdm_log_vprint_stdout(int level, const char *fmt, va_list arg)
70 char *lvl_str[] = {"HAL_TDM_NON", "HAL_TDM_ERR", "HAL_TDM_WRN", "HAL_TDM_INF", "HAL_TDM_DBG"};
71 char *color[] = {COLOR_RESET, COLOR_RED, COLOR_YELLOW, COLOR_GREEN, COLOR_RESET};
73 if (level > tdm_log_debug_level)
77 printf("%s", color[level]);
78 printf("[%s]", lvl_str[level]);
86 tdm_log_print_stdout(int level, const char *fmt, ...)
90 _tdm_log_vprint_stdout(level, fmt, arg);
95 _tdm_log_dlog_print(int level, const char *fmt, va_list arg)
97 log_priority dlog_prio;
100 case HAL_TDM_LOG_LEVEL_ERR:
101 dlog_prio = DLOG_ERROR;
103 case HAL_TDM_LOG_LEVEL_WRN:
104 dlog_prio = DLOG_WARN;
106 case HAL_TDM_LOG_LEVEL_INFO:
107 dlog_prio = DLOG_INFO;
109 case HAL_TDM_LOG_LEVEL_DBG:
110 dlog_prio = DLOG_DEBUG;
115 __dlog_vprint(LOG_ID_SYSTEM, dlog_prio, LOG_TAG, fmt, arg);
119 hal_tdm_log_print(int level, const char *fmt, ...)
123 if (level > tdm_log_debug_level)
128 _tdm_log_dlog_print(level, fmt, arg);
132 _tdm_log_vprint_stdout(level, fmt, arg);