Toggle navigation
Documentation
The friendly Operating System for the Internet of Things
Loading...
Searching...
No Matches
openwsn_log.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2015 Kaspar Schleiser <kaspar@schleiser.de>
3
*
4
* This file is subject to the terms and conditions of the GNU Lesser
5
* General Public License v2.1. See the file LICENSE in the top level
6
* directory for more details.
7
*/
8
9
#pragma once
10
23
24
#include <stdio.h>
25
26
#ifdef __cplusplus
27
extern
"C"
{
28
#endif
29
42
enum
{
43
LOG_NONE
,
44
LOG_ERROR
,
47
LOG_WARNING
,
49
LOG_INFO
,
52
LOG_DEBUG
,
54
LOG_ALL
55
};
56
57
#ifndef LOG_LEVEL
61
#define LOG_LEVEL LOG_INFO
62
#endif
63
67
#ifdef __clang__
/* following pragmas required for clang 3.8.0 */
68
#define LOG(level, ...) do { \
69
_Pragma("clang diagnostic push") \
70
_Pragma("clang diagnostic ignored \"-Wtautological-compare\"") \
71
if ((level) <= LOG_LEVEL) { \
72
log_write((level), __VA_ARGS__); \
73
} \
74
} while (0U) \
75
_Pragma("clang diagnostic pop")
76
#else
77
#define LOG(level, ...) do { \
78
if ((level) <= LOG_LEVEL) { \
79
log_write((level), __VA_ARGS__); \
80
} \
81
} while (0U)
82
#endif
/* __clang__ */
83
88
#define LOG_RIOT_ERROR(...) LOG(LOG_ERROR, __VA_ARGS__)
89
#define LOG_RIOT_WARNING(...) LOG(LOG_WARNING, __VA_ARGS__)
90
#define LOG_RIOT_INFO(...) LOG(LOG_INFO, __VA_ARGS__)
91
#define LOG_RIOT_DEBUG(...) LOG(LOG_DEBUG, __VA_ARGS__)
93
97
#define log_write(level, ...) printf(__VA_ARGS__)
98
99
#ifdef __cplusplus
100
}
101
#endif
102
LOG_INFO
#define LOG_INFO(...)
for the curious
Definition
log.h:110
LOG_NONE
@ LOG_NONE
Lowest log level, will output nothing.
Definition
log.h:52
LOG_ALL
@ LOG_ALL
print everything
Definition
log.h:63
LOG_DEBUG
#define LOG_DEBUG(...)
Print a log message, if LOG_LEVEL is defined to be at least LOG_DEBUG
Definition
log.h:125
LOG_ERROR
#define LOG_ERROR(...)
log an error
Definition
log.h:108
LOG_WARNING
#define LOG_WARNING(...)
log a warning
Definition
log.h:109
Generated on Sat Sep 19 2026 11:41:01 by
1.13.2