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
00029 #ifndef __cplusplus
00030 #error This is a C++ include file and cannot be used from plain C
00031 #endif
00032
00033
00034 #include "loggingLogger.h"
00035 #include "loggingStopWatch.h"
00036 #include "loggingLogTrace.h"
00037 #include "loggingGetLogger.h"
00038 #include <iostream>
00039 #include <acsutilTimeStamp.h>
00040
00041 #ifndef ENABLE_LOG4CPP_MACROS
00042
00043 #define LM_DELOUSE 010000
00044
00045
00055 #define LOG(priority, routine, text) \
00056 if (getLogger()!=0) \
00057 { \
00058 getLogger()->log(priority, text, __FILE__, __LINE__, routine); \
00059 } \
00060 else \
00061 { \
00062 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00063 std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00064 }
00065
00066
00077 #define LOG_FULL(logPriority, logRoutine, logMessage, logAudience, logArray, logAntenna) \
00078 if (getLogger()!=0) \
00079 { \
00080 Logging::BaseLog::LogRecord lr; \
00081 lr.priority = Logging::ace2acsPriority(logPriority); \
00082 lr.message = logMessage; \
00083 lr.file = __FILE__; \
00084 lr.line = __LINE__; \
00085 lr.method = logRoutine; \
00086 lr.timeStamp = getTimeStamp(); \
00087 LoggingProxy::audience(logAudience); \
00088 LoggingProxy::array(logArray); \
00089 LoggingProxy::antenna(logAntenna); \
00090 LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00091 getLogger()->log(lr); \
00092 LoggingProxy::audience(NULL); \
00093 } \
00094 else \
00095 { \
00096 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00097 std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00098 }
00099
00109 #define LOG_WITH_ANTENNA_CONTEXT(logPriority, logRoutine, logMessage, logArray, logAntenna) \
00110 if (getLogger()!=0) \
00111 { \
00112 Logging::BaseLog::LogRecord lr; \
00113 lr.priority = Logging::ace2acsPriority(logPriority); \
00114 lr.message = logMessage; \
00115 lr.file = __FILE__; \
00116 lr.line = __LINE__; \
00117 lr.method = logRoutine; \
00118 lr.timeStamp = getTimeStamp(); \
00119 LoggingProxy::array(logArray); \
00120 LoggingProxy::antenna(logAntenna); \
00121 LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00122 getLogger()->log(lr); \
00123 } \
00124 else \
00125 { \
00126 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00127 std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00128 }
00129
00138 #define LOG_TO_AUDIENCE(logPriority, logRoutine, logMessage, logAudience) \
00139 if (getLogger()!=0) \
00140 { \
00141 Logging::BaseLog::LogRecord lr; \
00142 lr.priority = Logging::ace2acsPriority(logPriority); \
00143 lr.message = logMessage; \
00144 lr.file = __FILE__; \
00145 lr.line = __LINE__; \
00146 lr.method = logRoutine; \
00147 lr.timeStamp = getTimeStamp(); \
00148 LoggingProxy::audience(logAudience); \
00149 LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00150 getLogger()->log(lr); \
00151 LoggingProxy::audience(NULL); \
00152 } \
00153 else \
00154 { \
00155 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00156 std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00157 }
00158
00171 #define LOG_RECORD(logPriority, logMessage, logFile, logLine, logRoutine, logTime, logSource) \
00172 if (getLogger()!=0) \
00173 { \
00174 Logging::BaseLog::LogRecord lr; \
00175 lr.priority = logPriority; \
00176 lr.message = logMessage; \
00177 lr.file = logFile; \
00178 lr.line = logLine; \
00179 lr.method = logRoutine; \
00180 lr.timeStamp = logTime; \
00181 getNamedLogger(logSource)->log(lr); \
00182 } \
00183 else \
00184 { \
00185 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00186 std::cerr << logFile << ", line=" << logLine << std::endl; \
00187 }
00188
00189
00201 #define LOG_GLOBAL_RECORD(logPriority, logMessage, logFile, logLine, logRoutine, logTime) \
00202 if (getLogger()!=0) \
00203 { \
00204 Logging::BaseLog::LogRecord lr; \
00205 lr.priority = logPriority; \
00206 lr.message = logMessage; \
00207 lr.file = logFile; \
00208 lr.line = logLine; \
00209 lr.method = logRoutine; \
00210 lr.timeStamp = logTime; \
00211 getLogger()->log(lr); \
00212 } \
00213 else \
00214 { \
00215 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00216 std::cerr << logFile << ", line=" << logLine << std::endl; \
00217 }
00218
00219
00228 #define STATIC_LOG(priority, routine, text) \
00229 Logging::Logger::getStaticLogger()->log(priority, text, __FILE__, __LINE__, routine);
00230
00242 #define STATIC_LOG_RECORD(logPriority, logMessage, logFile, logLine, logRoutine, logTime) \
00243 { \
00244 Logging::BaseLog::LogRecord lr; \
00245 lr.priority = logPriority; \
00246 lr.message = logMessage; \
00247 lr.file = logFile; \
00248 lr.line = logLine; \
00249 lr.method = logRoutine; \
00250 lr.timeStamp = logTime; \
00251 Logging::Logger::getStaticLogger()->log(lr); \
00252 }
00253
00263 #define STATIC_LOG_TO_AUDIENCE(priority, routine, text, logAudience) \
00264 LoggingProxy::audience(logAudience); \
00265 LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00266 Logging::Logger::getStaticLogger()->log(Logging::ace2acsPriority(priority), text, __FILE__, __LINE__, routine);
00267
00274 #define AUTO_TRACE(routine) \
00275 Logging::LogTrace::LogTraceSmartPtr __autoTraceLogTraceSmartPtrInstance(new Logging::LogTrace(getLogger(), routine, __FILE__, __LINE__));
00276
00283 #define AUTO_STATIC_TRACE(routine) \
00284 Logging::LogTrace::LogTraceSmartPtr __autoTraceLogTraceSmartPtrInstance(new Logging::LogTrace(Logging::Logger::getStaticLogger(), routine, __FILE__, __LINE__));
00285
00293 #define LOG_TO_DEVELOPER(logPriority, logMessage) \
00294 LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::DEVELOPER);
00295
00303 #define STATIC_LOG_TO_DEVELOPER(logPriority, logMessage) \
00304 STATIC_LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::DEVELOPER);
00305
00313 #define LOG_TO_OPERATOR( logPriority, logMessage) \
00314 LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::OPERATOR);
00315
00323 #define STATIC_LOG_TO_OPERATOR( logPriority, logMessage) \
00324 STATIC_LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::OPERATOR);
00325
00333 #define LOG_TO_SCIENCE( logPriority, logMessage) \
00334 LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::SCILOG);
00335
00343 #define STATIC_LOG_TO_SCIENCE( logPriority, logMessage) \
00344 STATIC_LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::SCILOG);
00345
00356 #define LOG_TO_SCILOG( logPriority, logMessage) \
00357 LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::SCILOG);
00358
00369 #define STATIC_LOG_TO_SCILOG( logPriority, logMessage) \
00370 STATIC_LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::SCILOG);
00371
00381 #define LOG_TO_AUDIENCE_WITH_LOGGER(logPriority, logMessage, logAudience, logger) \
00382 if (logger != 0) { \
00383 Logging::BaseLog::LogRecord lr; \
00384 lr.priority = Logging::ace2acsPriority(logPriority); \
00385 lr.message = logMessage; \
00386 lr.file = __FILE__; \
00387 lr.line = __LINE__; \
00388 lr.method = __PRETTY_FUNCTION__; \
00389 lr.timeStamp = ::getTimeStamp(); \
00390 LoggingProxy::audience(logAudience); \
00391 LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00392 logger->log(lr); \
00393 } else { \
00394 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00395 std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00396 }
00397
00406 #define LOG_TO_OPERATOR_WITH_LOGGER( logPriority, logMessage, logger) \
00407 LOG_TO_AUDIENCE_WITH_LOGGER(logPriority, logMessage, log_audience::OPERATOR, logger);
00408
00417 #define LOG_TO_DEVELOPER_WITH_LOGGER(logPriority, logMessage, logger) \
00418 LOG_TO_AUDIENCE_WITH_LOGGER(logPriority, logMessage, log_audience::DEVELOPER, logger);
00419
00420
00427 #define ACS_STOP_WATCH(...) \
00428 Logging::StopWatch::StopWatchSmartPtr __autoStopWatchSmartPtrInstance(new Logging::StopWatch(getLogger(), __FILE__, __LINE__, __VA_ARGS__));
00429
00430 #else
00431 #include "loggingLog4cppMACROS.h"
00432 #endif
00433
00434 #endif