00001 #ifndef logging_macros_H
00002 #define logging_macros_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef __cplusplus
00029 #error This is a C++ include file and cannot be used from plain C
00030 #endif
00031
00032 #include "loggingLogger.h"
00033 #include "loggingLogTrace.h"
00034 #include "loggingGetLogger.h"
00035 #include <iostream>
00036 #include <acsutilTimeStamp.h>
00037
00047 #define LOG(priority, routine, text) \
00048 if (getLogger()!=0) \
00049 { \
00050 getLogger()->log(priority, text, __FILE__, __LINE__, routine); \
00051 } \
00052 else \
00053 { \
00054 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00055 std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00056 }
00057
00058
00069 #define LOG_FULL(logPriority, logRoutine, logMessage, logAudience, logArray, logAntenna) \
00070 if (getLogger()!=0) \
00071 { \
00072 Logging::BaseLog::LogRecord lr; \
00073 lr.priority = Logging::ace2acsPriority(logPriority); \
00074 lr.message = logMessage; \
00075 lr.file = __FILE__; \
00076 lr.line = __LINE__; \
00077 lr.method = logRoutine; \
00078 lr.timeStamp = getTimeStamp(); \
00079 LoggingProxy::audience(logAudience); \
00080 LoggingProxy::array(logArray); \
00081 LoggingProxy::antenna(logAntenna); \
00082 LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00083 getLogger()->log(lr); \
00084 LoggingProxy::audience(NULL); \
00085 } \
00086 else \
00087 { \
00088 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00089 std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00090 }
00091
00101 #define LOG_WITH_ANTENNA_CONTEXT(logPriority, logRoutine, logMessage, logArray, logAntenna) \
00102 if (getLogger()!=0) \
00103 { \
00104 Logging::BaseLog::LogRecord lr; \
00105 lr.priority = Logging::ace2acsPriority(logPriority); \
00106 lr.message = logMessage; \
00107 lr.file = __FILE__; \
00108 lr.line = __LINE__; \
00109 lr.method = logRoutine; \
00110 lr.timeStamp = getTimeStamp(); \
00111 LoggingProxy::array(logArray); \
00112 LoggingProxy::antenna(logAntenna); \
00113 LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00114 getLogger()->log(lr); \
00115 } \
00116 else \
00117 { \
00118 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00119 std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00120 }
00121
00130 #define LOG_TO_AUDIENCE(logPriority, logRoutine, logMessage, logAudience) \
00131 if (getLogger()!=0) \
00132 { \
00133 Logging::BaseLog::LogRecord lr; \
00134 lr.priority = Logging::ace2acsPriority(logPriority); \
00135 lr.message = logMessage; \
00136 lr.file = __FILE__; \
00137 lr.line = __LINE__; \
00138 lr.method = logRoutine; \
00139 lr.timeStamp = getTimeStamp(); \
00140 LoggingProxy::audience(logAudience); \
00141 LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00142 getLogger()->log(lr); \
00143 LoggingProxy::audience(NULL); \
00144 } \
00145 else \
00146 { \
00147 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00148 std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00149 }
00150
00163 #define LOG_RECORD(logPriority, logMessage, logFile, logLine, logRoutine, logTime, logSource) \
00164 if (getLogger()!=0) \
00165 { \
00166 Logging::BaseLog::LogRecord lr; \
00167 lr.priority = logPriority; \
00168 lr.message = logMessage; \
00169 lr.file = logFile; \
00170 lr.line = logLine; \
00171 lr.method = logRoutine; \
00172 lr.timeStamp = logTime; \
00173 getNamedLogger(logSource)->log(lr); \
00174 } \
00175 else \
00176 { \
00177 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00178 std::cerr << logFile << ", line=" << logLine << std::endl; \
00179 }
00180
00181
00193 #define LOG_GLOBAL_RECORD(logPriority, logMessage, logFile, logLine, logRoutine, logTime) \
00194 if (getLogger()!=0) \
00195 { \
00196 Logging::BaseLog::LogRecord lr; \
00197 lr.priority = logPriority; \
00198 lr.message = logMessage; \
00199 lr.file = logFile; \
00200 lr.line = logLine; \
00201 lr.method = logRoutine; \
00202 lr.timeStamp = logTime; \
00203 getLogger()->log(lr); \
00204 } \
00205 else \
00206 { \
00207 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00208 std::cerr << logFile << ", line=" << logLine << std::endl; \
00209 }
00210
00211
00220 #define STATIC_LOG(priority, routine, text) \
00221 Logging::Logger::getStaticLogger()->log(priority, text, __FILE__, __LINE__, routine);
00222
00234 #define STATIC_LOG_RECORD(logPriority, logMessage, logFile, logLine, logRoutine, logTime) \
00235 { \
00236 Logging::BaseLog::LogRecord lr; \
00237 lr.priority = logPriority; \
00238 lr.message = logMessage; \
00239 lr.file = logFile; \
00240 lr.line = logLine; \
00241 lr.method = logRoutine; \
00242 lr.timeStamp = logTime; \
00243 Logging::Logger::getStaticLogger()->log(lr); \
00244 }
00245
00252 #define AUTO_TRACE(routine) \
00253 Logging::LogTrace::LogTraceSmartPtr __autoTraceLogTraceSmartPtrInstance(new Logging::LogTrace(getLogger(), routine, __FILE__, __LINE__));
00254
00261 #define AUTO_STATIC_TRACE(routine) \
00262 Logging::LogTrace::LogTraceSmartPtr __autoTraceLogTraceSmartPtrInstance(new Logging::LogTrace(Logging::Logger::getStaticLogger(), routine, __FILE__, __LINE__));
00263
00264 #endif