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
27extern "C" {
28#endif
29
42enum {
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) log_write((level), __VA_ARGS__); } while (0U) \
72 _Pragma("clang diagnostic pop")
73#else
74#define LOG(level, ...) do { \
75 if ((level) <= LOG_LEVEL) log_write((level), __VA_ARGS__); } while (0U)
76#endif /* __clang__ */
77
82#define LOG_RIOT_ERROR(...) LOG(LOG_ERROR, __VA_ARGS__)
83#define LOG_RIOT_WARNING(...) LOG(LOG_WARNING, __VA_ARGS__)
84#define LOG_RIOT_INFO(...) LOG(LOG_INFO, __VA_ARGS__)
85#define LOG_RIOT_DEBUG(...) LOG(LOG_DEBUG, __VA_ARGS__)
87
91#define log_write(level, ...) printf(__VA_ARGS__)
92
93#ifdef __cplusplus
94}
95#endif
96
#define LOG_INFO(...)
for the curious
Definition log.h:107
@ LOG_NONE
Lowest log level, will output nothing.
Definition log.h:55
@ LOG_ALL
print everything
Definition log.h:66
#define LOG_DEBUG(...)
Print a log message, if LOG_LEVEL is defined to be at least LOG_DEBUG
Definition log.h:122
#define LOG_ERROR(...)
log an error
Definition log.h:105
#define LOG_WARNING(...)
log a warning
Definition log.h:106