28#ifndef LOGGING_STACK_H_
29#define LOGGING_STACK_H_
54 #define LIBRARY_LOG_NAME "<LIBRARY_NAME>"
58#if !defined( LIBRARY_LOG_NAME )
59 #error "Please define LIBRARY_LOG_NAME for the library."
66#define FILENAME ( strrchr( __FILE__, '/' ) ? strrchr( __FILE__, '/' ) + 1 : __FILE__ )
69#define LOG_METADATA_FORMAT "[%s] [%s:%d] "
70#define LOG_METADATA_ARGS LIBRARY_LOG_NAME, FILENAME, __LINE__
72#if !defined( DISABLE_LOGGING )
82 #define SdkLog( string ) printf string
84 #define SdkLog( string )
93#if !defined( LIBRARY_LOG_LEVEL ) || \
94 ( ( LIBRARY_LOG_LEVEL != LOG_NONE ) && \
95 ( LIBRARY_LOG_LEVEL != LOG_ERROR ) && \
96 ( LIBRARY_LOG_LEVEL != LOG_WARN ) && \
97 ( LIBRARY_LOG_LEVEL != LOG_INFO ) && \
98 ( LIBRARY_LOG_LEVEL != LOG_DEBUG ) \
100 #error "Please define LIBRARY_LOG_LEVEL as either LOG_NONE, LOG_ERROR, LOG_WARN, LOG_INFO, or LOG_DEBUG."
102 #if LIBRARY_LOG_LEVEL == LOG_DEBUG
104 #define LogError( message ) SdkLog( ( "[ERROR] " LOG_METADATA_FORMAT, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
105 #define LogWarn( message ) SdkLog( ( "[WARN] " LOG_METADATA_FORMAT, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
106 #define LogInfo( message ) SdkLog( ( "[INFO] " LOG_METADATA_FORMAT, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
107 #define LogDebug( message ) SdkLog( ( "[DEBUG] " LOG_METADATA_FORMAT, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
109 #elif LIBRARY_LOG_LEVEL == LOG_INFO
111 #define LogError( message ) SdkLog( ( "[ERROR] " LOG_METADATA_FORMAT, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
112 #define LogWarn( message ) SdkLog( ( "[WARN] " LOG_METADATA_FORMAT, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
113 #define LogInfo( message ) SdkLog( ( "[INFO] " LOG_METADATA_FORMAT, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
114 #define LogDebug( message )
116 #elif LIBRARY_LOG_LEVEL == LOG_WARN
118 #define LogError( message ) SdkLog( ( "[ERROR] " LOG_METADATA_FORMAT, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
119 #define LogWarn( message ) SdkLog( ( "[WARN] " LOG_METADATA_FORMAT, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
120 #define LogInfo( message )
121 #define LogDebug( message )
123 #elif LIBRARY_LOG_LEVEL == LOG_ERROR
125 #define LogError( message ) SdkLog( ( "[ERROR] " LOG_METADATA_FORMAT, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
126 #define LogWarn( message )
127 #define LogInfo( message )
128 #define LogDebug( message )
132 #define LogError( message )
133 #define LogWarn( message )
134 #define LogInfo( message )
135 #define LogDebug( message )
151 #define LogDebug( message ) SdkLog( ( "[DEBUG] " LOG_METADATA_FORMAT, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
160 #define LogInfo( message ) SdkLog( ( "[INFO] " LOG_METADATA_FORMAT, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
169 #define LogWarn( message ) SdkLog( ( "[WARN] " LOG_METADATA_FORMAT, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
178 #define LogError( message ) SdkLog( ( "[ERROR] " LOG_METADATA_FORMAT, LOG_METADATA_ARGS ) ); SdkLog( message ); SdkLog( ( "\r\n" ) )
Defines the logging level macros.