| /* |
| * libiio - Library for interfacing industrial I/O (IIO) devices |
| * |
| * Copyright (C) 2014 Analog Devices, Inc. |
| * Author: Paul Cercueil <[email protected]> |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * */ |
| |
| #ifndef DEBUG_H |
| #define DEBUG_H |
| |
| #include "iio-config.h" |
| |
| #include <stdio.h> |
| |
| #define NoLog_L 0 |
| #define Error_L 1 |
| #define Warning_L 2 |
| #define Info_L 3 |
| #define Debug_L 4 |
| |
| /* -------------------- */ |
| |
| #ifdef WITH_COLOR_DEBUG |
| #ifndef COLOR_DEBUG |
| #define COLOR_DEBUG "\e[0;32m" |
| #endif |
| #ifndef COLOR_WARNING |
| #define COLOR_WARNING "\e[01;35m" |
| #endif |
| #ifndef COLOR_ERROR |
| #define COLOR_ERROR "\e[01;31m" |
| #endif |
| |
| #define COLOR_END "\e[0m" |
| #endif |
| |
| #if (LOG_LEVEL >= Debug_L) |
| # ifdef COLOR_DEBUG |
| # define DEBUG(str, ...) \ |
| fprintf(stdout, COLOR_DEBUG "DEBUG: " str COLOR_END, ##__VA_ARGS__) |
| # else |
| # define DEBUG(...) \ |
| fprintf(stdout, "DEBUG: " __VA_ARGS__) |
| # endif |
| #else |
| #define DEBUG(...) do { } while (0) |
| #endif |
| |
| #if (LOG_LEVEL >= Info_L) |
| # ifdef COLOR_INFO |
| # define INFO(str, ...) \ |
| fprintf(stdout, COLOR_INFO str COLOR_END, ##__VA_ARGS__) |
| # else |
| # define INFO(...) \ |
| fprintf(stdout, __VA_ARGS__) |
| # endif |
| #else |
| #define INFO(...) do { } while (0) |
| #endif |
| |
| #if (LOG_LEVEL >= Warning_L) |
| # ifdef COLOR_WARNING |
| # define WARNING(str, ...) \ |
| fprintf(stderr, COLOR_WARNING "WARNING: " str COLOR_END, ##__VA_ARGS__) |
| # else |
| # define WARNING(...) \ |
| fprintf(stderr, "WARNING: " __VA_ARGS__) |
| # endif |
| #else |
| #define WARNING(...) do { } while (0) |
| #endif |
| |
| #if (LOG_LEVEL >= Error_L) |
| # ifdef COLOR_ERROR |
| # define ERROR(str, ...) \ |
| fprintf(stderr, COLOR_ERROR "ERROR: " str COLOR_END, ##__VA_ARGS__) |
| # else |
| # define ERROR(...) \ |
| fprintf(stderr, "ERROR: " __VA_ARGS__) |
| # endif |
| #else |
| #define ERROR(...) do { } while (0) |
| #endif |
| |
| #endif |