1 /* 2 * Copyright (c) 2018 - 2020 Nordic Semiconductor ASA 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #include <zephyr/kernel.h> 8 #include <zephyr/logging/log_core.h> 9 #include <stdarg.h> 10 11 #include <openthread/platform/logging.h> 12 13 #include "platform-zephyr.h" 14 15 #if defined(CONFIG_LOG) 16 /* Convert OT log level to zephyr log level. */ log_translate(otLogLevel aLogLevel)17static inline int log_translate(otLogLevel aLogLevel) 18 { 19 switch (aLogLevel) { 20 case OT_LOG_LEVEL_NONE: 21 case OT_LOG_LEVEL_CRIT: 22 return LOG_LEVEL_ERR; 23 case OT_LOG_LEVEL_WARN: 24 return LOG_LEVEL_WRN; 25 case OT_LOG_LEVEL_NOTE: 26 case OT_LOG_LEVEL_INFO: 27 return LOG_LEVEL_INF; 28 case OT_LOG_LEVEL_DEBG: 29 return LOG_LEVEL_DBG; 30 default: 31 break; 32 } 33 34 return -1; 35 } 36 #endif 37 otPlatLog(otLogLevel aLogLevel,otLogRegion aLogRegion,const char * aFormat,...)38void otPlatLog(otLogLevel aLogLevel, otLogRegion aLogRegion, const char *aFormat, ...) 39 { 40 ARG_UNUSED(aLogRegion); 41 42 #if defined(CONFIG_LOG) 43 int level = log_translate(aLogLevel); 44 va_list param_list; 45 46 if (level < 0 || level > CONFIG_OPENTHREAD_PLATFORM_LOG_LEVEL) { 47 return; 48 } 49 50 va_start(param_list, aFormat); 51 log_generic(level, aFormat, param_list); 52 va_end(param_list); 53 #else 54 ARG_UNUSED(aLogLevel); 55 ARG_UNUSED(aFormat); 56 #endif 57 58 } 59