Loading...
Searching...
No Matches
openwsn_log.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2015 Kaspar Schleiser <kaspar@schleiser.de>
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
20
21#include <stdio.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
39enum {
52};
53
54#ifndef LOG_LEVEL
58#define LOG_LEVEL LOG_INFO
59#endif
60
64#ifdef __clang__ /* following pragmas required for clang 3.8.0 */
65#define LOG(level, ...) do { \
66 _Pragma("clang diagnostic push") \
67 _Pragma("clang diagnostic ignored \"-Wtautological-compare\"") \
68 if ((level) <= LOG_LEVEL) { \
69 log_write((level), __VA_ARGS__); \
70 } \
71 } while (0U) \
72 _Pragma("clang diagnostic pop")
73#else
74#define LOG(level, ...) do { \
75 if ((level) <= LOG_LEVEL) { \
76 log_write((level), __VA_ARGS__); \
77 } \
78 } while (0U)
79#endif /* __clang__ */
80
85#define LOG_RIOT_ERROR(...) LOG(LOG_ERROR, __VA_ARGS__)
86#define LOG_RIOT_WARNING(...) LOG(LOG_WARNING, __VA_ARGS__)
87#define LOG_RIOT_INFO(...) LOG(LOG_INFO, __VA_ARGS__)
88#define LOG_RIOT_DEBUG(...) LOG(LOG_DEBUG, __VA_ARGS__)
90
94#define log_write(level, ...) printf(__VA_ARGS__)
95
96#ifdef __cplusplus
97}
98#endif
99
#define LOG_INFO(...)
for the curious
Definition log.h:110
@ LOG_NONE
Lowest log level, will output nothing.
Definition log.h:52
@ LOG_ALL
print everything
Definition log.h:63
#define LOG_DEBUG(...)
Print a log message, if LOG_LEVEL is defined to be at least LOG_DEBUG
Definition log.h:125
#define LOG_ERROR(...)
log an error
Definition log.h:108
#define LOG_WARNING(...)
log a warning
Definition log.h:109