zephyr/modules/openthread/platform/logging.c

63 lines
1.2 KiB
C

/*
* Copyright (c) 2018 - 2020 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/kernel.h>
#include <stdarg.h>
#include <stdio.h>
#include <openthread/platform/logging.h>
#include "openthread-core-zephyr-config.h"
#define LOG_MODULE_NAME net_openthread
#define LOG_LEVEL LOG_LEVEL_DBG
#include <zephyr/logging/log.h>
LOG_MODULE_REGISTER(LOG_MODULE_NAME);
#include "platform-zephyr.h"
/* Convert OT log level to zephyr log level. */
static inline int log_translate(otLogLevel aLogLevel)
{
switch (aLogLevel) {
case OT_LOG_LEVEL_NONE:
case OT_LOG_LEVEL_CRIT:
return LOG_LEVEL_ERR;
case OT_LOG_LEVEL_WARN:
return LOG_LEVEL_WRN;
case OT_LOG_LEVEL_NOTE:
case OT_LOG_LEVEL_INFO:
return LOG_LEVEL_INF;
case OT_LOG_LEVEL_DEBG:
return LOG_LEVEL_DBG;
default:
break;
}
return -1;
}
void otPlatLog(otLogLevel aLogLevel, otLogRegion aLogRegion, const char *aFormat, ...)
{
ARG_UNUSED(aLogRegion);
#if defined(CONFIG_LOG)
int level = log_translate(aLogLevel);
va_list param_list;
if (level < 0) {
return;
}
va_start(param_list, aFormat);
log2_generic(level, aFormat, param_list);
va_end(param_list);
#else
ARG_UNUSED(aLogLevel);
ARG_UNUSED(aFormat);
#endif
}