X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Flogger%2Finclude%2Flogger.h;h=fcab1930722021c0a4f2a97424be3e1537392446;hb=390866079e285d2c74918432c0d597d5da52f8a0;hp=3c69eaee18078fad5ec2367eb3636749b8001c7c;hpb=3e9402ad71cb3e93266a77796f44d17bab9853fd;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/logger/include/logger.h b/resource/csdk/logger/include/logger.h index 3c69eae..fcab193 100644 --- a/resource/csdk/logger/include/logger.h +++ b/resource/csdk/logger/include/logger.h @@ -21,27 +21,29 @@ #ifndef LOGGER_H_ #define LOGGER_H_ +#define IOTIVITY_VERSION "1.1.0" + #include #include #include -#include "oc_logger.h" -#include "oc_console_logger.h" +#include "logger_types.h" #ifdef __ANDROID__ - #include +#include #elif defined(__TIZEN__) #include -#elif defined ARDUINO - #include "Arduino.h" - #include +#elif defined(ARDUINO) +#include "Arduino.h" +#include "avr/pgmspace.h" #endif #ifdef __cplusplus -extern "C" { +extern "C" +{ #endif // Use the PCF macro to wrap strings stored in FLASH on the Arduino -// Example: OC_LOG(INFO, TAG, PCF("Entering function")); +// Example: OIC_LOG(INFO, TAG, PCF("Entering function")); #ifdef ARDUINO #ifdef __cplusplus #define PCF(str) ((PROGMEM const char *)(F(str))) @@ -105,7 +107,11 @@ typedef enum { * @param tag - Module name * @param format - variadic log string */ - void OCLogv(LogLevel level, const char * tag, const char * format, ...); + void OCLogv(LogLevel level, const char * tag, const char * format, ...) +#if defined(__GNUC__) + __attribute__ ((format(printf, 3, 4))) +#endif + ; /** * Output a log string with the specified priority level. @@ -126,7 +132,7 @@ typedef enum { * @param bufferSize - max number of byte in buffer */ void OCLogBuffer(LogLevel level, const char * tag, const uint8_t * buffer, uint16_t bufferSize); -#else +#else // For arduino platforms /** * Initialize the serial logger for Arduino * Only defined for Arduino @@ -139,9 +145,11 @@ typedef enum { * * @param level - DEBUG, INFO, WARNING, ERROR, FATAL * @param tag - Module name + * @param lineNum- line Number * @param logStr - log string */ - void OCLog(LogLevel level, PROGMEM const char * tag, PROGMEM const char * logStr); + void OCLog(LogLevel level, PROGMEM const char *tag, const int lineNum, + PROGMEM const char *logStr); /** * Output the contents of the specified buffer (in hex) with the specified priority level. @@ -151,50 +159,67 @@ typedef enum { * @param buffer - pointer to buffer of bytes * @param bufferSize - max number of byte in buffer */ - void OCLogBuffer(LogLevel level, PROGMEM const char * tag, const uint8_t * buffer, uint16_t bufferSize); + void OCLogBuffer(LogLevel level, const char *tag, const uint8_t *buffer, size_t bufferSize); /** * Output a variable argument list log string with the specified priority level. * * @param level - DEBUG, INFO, WARNING, ERROR, FATAL * @param tag - Module name + * @param lineNum- line Number * @param format - variadic log string */ - void OCLogv(LogLevel level, const char * tag, const char * format, ...); + void OCLogv(LogLevel level, PROGMEM const char *tag, const int lineNum, + PROGMEM const char *format, ...) +#if defined(__GNUC__) + __attribute__ ((format(printf, 4, 5))) +#endif +; #endif #ifdef TB_LOG + #ifdef __TIZEN__ - #define OC_LOG(level,tag,mes) LOG_(LOG_ID_MAIN, level, tag, mes) - #define OC_LOG_V(level,tag,fmt,args...) LOG_(LOG_ID_MAIN, level, tag, fmt,##args) - #define OC_LOG_BUFFER(level, tag, buffer, bufferSize) + +#define OIC_LOG(level,tag,mes) LOG_(LOG_ID_MAIN, (level), (tag), mes) +#define OIC_LOG_V(level,tag,fmt,args...) LOG_(LOG_ID_MAIN, level, tag, fmt, ##args) +#define OIC_LOG_BUFFER(level, tag, buffer, bufferSize) + #else // These macros are defined for Linux, Android, and Arduino - #define OC_LOG_INIT() OCLogInit() - #define OC_LOG_BUFFER(level, tag, buffer, bufferSize) OCLogBuffer((level), PCF(tag), (buffer), (bufferSize)) - - #ifdef ARDUINO - #define OC_LOG_CONFIG(ctx) - #define OC_LOG_SHUTDOWN() - #define OC_LOG(level, tag, logStr) OCLog((level), PCF(tag), PCF(logStr)) - // Use full namespace for logInit to avoid function name collision - #define OC_LOG_INIT() OCLogInit() - // Don't define variable argument log function for Arduino - #define OC_LOG_V(level, tag, format, ...) OCLogv((level), PCF(tag), PCF(format), __VA_ARGS__) - #else - #define OC_LOG_CONFIG(ctx) OCLogConfig((ctx)) - #define OC_LOG(level, tag, logStr) OCLog((level), (tag), (logStr)) - #define OC_LOG_SHUTDOWN() OCLogShutdown() - // Define variable argument log function for Linux and Android - #define OC_LOG_V(level, tag, ...) OCLogv((level), (tag), __VA_ARGS__) - #endif -#endif + +#define OIC_LOG_INIT() OCLogInit() + +#ifdef ARDUINO + +#define OIC_LOG_BUFFER(level, tag, buffer, bufferSize) OCLogBuffer((level), PCF(tag), (buffer), (bufferSize)) +// Don't define variable argument log function for Arduino +#define OIC_LOG_V(level, tag, format, ...) OCLogv((level), PCF(tag), __LINE__, PCF(format),__VA_ARGS__) + +#define OIC_LOG_CONFIG(ctx) +#define OIC_LOG_SHUTDOWN() +#define OIC_LOG(level, tag, logStr) OCLog((level), PCF(tag), __LINE__, PCF(logStr)) +#define OIC_LOG_V(level, tag, ...) + #else - #define OC_LOG_CONFIG(ctx) - #define OC_LOG_SHUTDOWN() - #define OC_LOG(level, tag, logStr) - #define OC_LOG_V(level, tag, ...) - #define OC_LOG_BUFFER(level, tag, buffer, bufferSize) - #define OC_LOG_INIT() + +#define OIC_LOG_BUFFER(level, tag, buffer, bufferSize) OCLogBuffer((level), (tag), (buffer), (bufferSize)) +#define OIC_LOG_CONFIG(ctx) OCLogConfig((ctx)) +#define OIC_LOG_SHUTDOWN() OCLogShutdown() +#define OIC_LOG(level, tag, logStr) OCLog((level), (tag), (logStr)) +// Define variable argument log function for Linux and Android +#define OIC_LOG_V(level, tag, ...) OCLogv((level), (tag), __VA_ARGS__) + +#endif //ARDUINO +#endif //__TIZEN__ + +#else //TB_LOG + +#define OIC_LOG_CONFIG(ctx) +#define OIC_LOG_SHUTDOWN() +#define OIC_LOG(level, tag, logStr) +#define OIC_LOG_V(level, tag, ...) +#define OIC_LOG_BUFFER(level, tag, buffer, bufferSize) +#define OIC_LOG_INIT() #endif #ifdef __cplusplus