1 /*
2 * Copyright (c) 2018, Xilinx Inc. and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7 /*
8 * @file zephyr/log.c
9 * @brief Zephyr libmetal log handler.
10 */
11
12 #include <stdarg.h>
13 #include <metal/log.h>
14 #include <zephyr/kernel.h>
15
16 static const char * const level_strs[] = {
17 "metal: emergency: ",
18 "metal: alert: ",
19 "metal: critical: ",
20 "metal: error: ",
21 "metal: warning: ",
22 "metal: notice: ",
23 "metal: info: ",
24 "metal: debug: ",
25 };
26
metal_zephyr_log_handler(enum metal_log_level level,const char * format,...)27 void metal_zephyr_log_handler(enum metal_log_level level,
28 const char *format, ...)
29 {
30 va_list args;
31
32 if (level <= METAL_LOG_EMERGENCY || level > METAL_LOG_DEBUG)
33 level = METAL_LOG_EMERGENCY;
34 printk("%s", level_strs[level]);
35
36 va_start(args, format);
37 vprintk(format, args);
38 va_end(args);
39 }
40
41