libmetal
Loading...
Searching...
No Matches
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
16extern "C" {
17#endif
18
33};
34
36typedef void (*metal_log_handler)(enum metal_log_level level,
37 const char *format, ...);
38
44extern void metal_set_log_handler(metal_log_handler handler);
45
51
56extern void metal_set_log_level(enum metal_log_level level);
57
62extern enum metal_log_level metal_get_log_level(void);
63
71extern 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__ */
void metal_default_log_handler(enum metal_log_level level, const char *format,...)
Default libmetal log handler. This handler prints libmetal log messages to stderr.
Definition log.c:13
metal_log_level
Definition log.h:24
metal_log_handler metal_get_log_handler(void)
Get the current libmetal log handler.
Definition log.c:49
void metal_set_log_handler(metal_log_handler handler)
Set libmetal log handler.
Definition log.c:44
void metal_set_log_level(enum metal_log_level level)
Set the level for libmetal logging.
Definition log.c:54
void(* metal_log_handler)(enum metal_log_level level, const char *format,...)
Definition log.h:36
enum metal_log_level metal_get_log_level(void)
Get the current level for libmetal logging.
Definition log.c:59
@ METAL_LOG_NOTICE
Definition log.h:30
@ METAL_LOG_INFO
Definition log.h:31
@ METAL_LOG_WARNING
Definition log.h:29
@ METAL_LOG_EMERGENCY
Definition log.h:25
@ METAL_LOG_ALERT
Definition log.h:26
@ METAL_LOG_CRITICAL
Definition log.h:27
@ METAL_LOG_DEBUG
Definition log.h:32
@ METAL_LOG_ERROR
Definition log.h:28