libmetal
log.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015, Xilinx Inc. and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 /*
8  * @file log.h
9  * @brief Logging support for libmetal.
10  */
11 
12 #ifndef __METAL_METAL_LOG__H__
13 #define __METAL_METAL_LOG__H__
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
33 };
34 
36 typedef void (*metal_log_handler)(enum metal_log_level level,
37  const char *format, ...);
38 
44 extern void metal_set_log_handler(metal_log_handler handler);
45 
51 
56 extern void metal_set_log_level(enum metal_log_level level);
57 
62 extern enum metal_log_level metal_get_log_level(void);
63 
71 extern void metal_default_log_handler(enum metal_log_level level,
72  const char *format, ...);
73 
80 #define metal_log(level, ...) \
81  ((level <= _metal.common.log_level && _metal.common.log_handler) \
82  ? (void)_metal.common.log_handler(level, __VA_ARGS__) \
83  : (void)0)
84 
87 #ifdef __cplusplus
88 }
89 #endif
90 
91 #include <metal/system/@PROJECT_SYSTEM@/log.h>
92 
93 #endif /* __METAL_METAL_LOG__H__ */
METAL_LOG_DEBUG
@ METAL_LOG_DEBUG
Definition: log.h:32
metal_log_handler
void(* metal_log_handler)(enum metal_log_level level, const char *format,...)
Definition: log.h:36
METAL_LOG_ERROR
@ METAL_LOG_ERROR
Definition: log.h:28
METAL_LOG_EMERGENCY
@ METAL_LOG_EMERGENCY
Definition: log.h:25
METAL_LOG_NOTICE
@ METAL_LOG_NOTICE
Definition: log.h:30
METAL_LOG_WARNING
@ METAL_LOG_WARNING
Definition: log.h:29
metal_default_log_handler
void metal_default_log_handler(enum metal_log_level level, const char *format,...)
Default libmetal log handler. This handler prints libmetal log mesages to stderr.
Definition: log.c:13
METAL_LOG_INFO
@ METAL_LOG_INFO
Definition: log.h:31
metal_set_log_handler
void metal_set_log_handler(metal_log_handler handler)
Set libmetal log handler.
Definition: log.c:44
METAL_LOG_ALERT
@ METAL_LOG_ALERT
Definition: log.h:26
metal_set_log_level
void metal_set_log_level(enum metal_log_level level)
Set the level for libmetal logging.
Definition: log.c:54
metal_get_log_handler
metal_log_handler metal_get_log_handler(void)
Get the current libmetal log handler.
Definition: log.c:49
metal_log_level
metal_log_level
Definition: log.h:24
metal_get_log_level
enum metal_log_level metal_get_log_level(void)
Get the current level for libmetal logging.
Definition: log.c:59
METAL_LOG_CRITICAL
@ METAL_LOG_CRITICAL
Definition: log.h:27