Library to implement various levels of messages in cpp files
Dependents: IoT_Ex BatteryModelTester BatteryModelTester
messages.h
- Committer:
- defrost
- Date:
- 2016-11-24
- Revision:
- 3:7968911e2787
- Parent:
- 2:82a7f404215c
- Child:
- 4:695f0085a392
File content as of revision 3:7968911e2787:
/** * @author Damien Frost * * @section LICENSE * * Copyright (c) 2016 Damien Frost * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. * * @file "messages.h" * * @section DESCRIPTION * Definitions for various messaging levels. See the example, below for usage. * * @section EXAMPLE * 1) Add this library to your project. * 2) Include the file as a regular .h file in *.cpp files only. This will allow * you to have different messages coming from different files. * * Ex: main.cpp: * * #include "mbed.h" * * // Include the following #defines and #include to use messages.h in every *.cpp file you would like to use it in: * //#define DEBUG // This define is commented out, so DEBUG messages will NOT be displayed. * #define INFOMESSAGES // The next three are defined, thus INFO, WARN, and ERR messages will BE displayed. * #define WARNMESSAGES * #define ERRMESSAGES * #define FUNCNAME "MAIN" // Set this to an intelligible string. Usually set to something to do with the filename. * #include "messages.h" // Finally include the messages.h header. * // Main Loop! * int main() { * INFO("CPU SystemCoreClock is %d Hz", SystemCoreClock); * DBG("Testing %d, %.3f, %d", 1, 2.0f, 3); * } * * * */ #ifndef MESSAGES_H #define MESSAGES_H #ifdef DEBUG #define DBG(x, ...) printf("["FUNCNAME" : DBG] "x" <line %d>\r\n", ##__VA_ARGS__,__LINE__); #else #define DBG(x, ...) #endif #ifdef ERRMESSAGES #define ERR(x, ...) printf("["FUNCNAME" : ERR] "x"\r\n", ##__VA_ARGS__); #else #define ERR(x, ...) #endif #ifdef WARNMESSAGES #define WARN(x, ...) printf("["FUNCNAME" : WARN] "x"\r\n", ##__VA_ARGS__); #else #define WARN(x, ...) #endif #ifdef INFOMESSAGES #define INFO(x, ...) printf("["FUNCNAME" : INFO] "x"\r\n", ##__VA_ARGS__); #else #define INFO(x, ...) #endif #endif /* MESSAGES_H */