| // Copyright 2019 Fuzhou Rockchip Electronics Co., Ltd. All rights reserved. | 
| // Use of this source code is governed by a BSD-style license that can be | 
| // found in the LICENSE file. | 
|   | 
| #ifndef _RK_LOGGER_H_ | 
| #define _RK_LOGGER_H_ | 
|   | 
| #ifdef ENABLE_MINILOGGER | 
| #include "minilogger/log.h" | 
| #else | 
| #define minilog_warn(...) | 
| #define minilog_error(...) | 
| #define minilog_info(...) | 
| #define minilog_debug(...) | 
| #define __minilog_log_init(...) | 
| #endif | 
|   | 
| extern int enable_minilog; | 
| extern int ispserver_log_level; | 
|   | 
| #define LOG_LEVEL_ERROR 0 | 
| #define LOG_LEVEL_WARN 1 | 
| #define LOG_LEVEL_INFO 2 | 
| #define LOG_LEVEL_DEBUG 3 | 
|   | 
| #ifndef LOG_TAG | 
| #define LOG_TAG "ispserver" | 
| #endif // LOG_TAG | 
|   | 
| #define LOG_INFO(format, ...)                                                  \ | 
|   do {                                                                         \ | 
|     if (ispserver_log_level < LOG_LEVEL_INFO)                                  \ | 
|       break;                                                                   \ | 
|     if (enable_minilog)                                                        \ | 
|       minilog_info("[%s][%s]:" format, LOG_TAG, __FUNCTION__, ##__VA_ARGS__);  \ | 
|     else                                                                       \ | 
|       fprintf(stderr, "[%s][%s]:" format, LOG_TAG, __FUNCTION__,               \ | 
|               ##__VA_ARGS__);                                                  \ | 
|   } while (0) | 
|   | 
| #define LOG_WARN(format, ...)                                                  \ | 
|   do {                                                                         \ | 
|     if (ispserver_log_level < LOG_LEVEL_WARN)                                  \ | 
|       break;                                                                   \ | 
|     if (enable_minilog)                                                        \ | 
|       minilog_warn("[%s][%s]:" format, LOG_TAG, __FUNCTION__, ##__VA_ARGS__);  \ | 
|     else                                                                       \ | 
|       fprintf(stderr, "[%s][%s]:" format, LOG_TAG, __FUNCTION__,               \ | 
|               ##__VA_ARGS__);                                                  \ | 
|   } while (0) | 
|   | 
| #define LOG_ERROR(format, ...)                                                 \ | 
|   do {                                                                         \ | 
|     if (ispserver_log_level < LOG_LEVEL_ERROR)                                 \ | 
|       break;                                                                   \ | 
|     if (enable_minilog)                                                        \ | 
|       minilog_error("[%s][%s]:" format, LOG_TAG, __FUNCTION__, ##__VA_ARGS__); \ | 
|     else                                                                       \ | 
|       fprintf(stderr, "[%s][%s]:" format, LOG_TAG, __FUNCTION__,               \ | 
|               ##__VA_ARGS__);                                                  \ | 
|   } while (0) | 
|   | 
| #define LOG_DEBUG(format, ...)                                                 \ | 
|   do {                                                                         \ | 
|     if (ispserver_log_level < LOG_LEVEL_DEBUG)                                 \ | 
|       break;                                                                   \ | 
|     if (enable_minilog)                                                        \ | 
|       minilog_debug("[%s][%s]:" format, LOG_TAG, __FUNCTION__, ##__VA_ARGS__); \ | 
|     else                                                                       \ | 
|       fprintf(stderr, "[%s][%s]:" format, LOG_TAG, __FUNCTION__,               \ | 
|               ##__VA_ARGS__);                                                  \ | 
|   } while (0) | 
|   | 
| #endif |