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 "loggingLogTrace.h"
00036 #include "loggingGetLogger.h"
00037 #include <iostream>
00038 #include <acsutilTimeStamp.h>
00039
00040 #ifndef ENABLE_LOG4CPP_MACROS
00041
00042 #define LM_DELOUSE 010000
00043
00044
00054 #define LOG(priority, routine, text) \
00055 if (getLogger()!=0) \
00056 { \
00057 getLogger()->log(priority, text, __FILE__, __LINE__, routine); \
00058 } \
00059 else \
00060 { \
00061 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00062 std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00063 }
00064
00065
00076 #define LOG_FULL(logPriority, logRoutine, logMessage, logAudience, logArray, logAntenna) \
00077 if (getLogger()!=0) \
00078 { \
00079 Logging::BaseLog::LogRecord lr; \
00080 lr.priority = Logging::ace2acsPriority(logPriority); \
00081 lr.message = logMessage; \
00082 lr.file = __FILE__; \
00083 lr.line = __LINE__; \
00084 lr.method = logRoutine; \
00085 lr.timeStamp = getTimeStamp(); \
00086 LoggingProxy::audience(logAudience); \
00087 LoggingProxy::array(logArray); \
00088 LoggingProxy::antenna(logAntenna); \
00089 LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00090 getLogger()->log(lr); \
00091 LoggingProxy::audience(NULL); \
00092 } \
00093 else \
00094 { \
00095 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00096 std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00097 }
00098
00108 #define LOG_WITH_ANTENNA_CONTEXT(logPriority, logRoutine, logMessage, logArray, logAntenna) \
00109 if (getLogger()!=0) \
00110 { \
00111 Logging::BaseLog::LogRecord lr; \
00112 lr.priority = Logging::ace2acsPriority(logPriority); \
00113 lr.message = logMessage; \
00114 lr.file = __FILE__; \
00115 lr.line = __LINE__; \
00116 lr.method = logRoutine; \
00117 lr.timeStamp = getTimeStamp(); \
00118 LoggingProxy::array(logArray); \
00119 LoggingProxy::antenna(logAntenna); \
00120 LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00121 getLogger()->log(lr); \
00122 } \
00123 else \
00124 { \
00125 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00126 std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00127 }
00128
00137 #define LOG_TO_AUDIENCE(logPriority, logRoutine, logMessage, logAudience) \
00138 if (getLogger()!=0) \
00139 { \
00140 Logging::BaseLog::LogRecord lr; \
00141 lr.priority = Logging::ace2acsPriority(logPriority); \
00142 lr.message = logMessage; \
00143 lr.file = __FILE__; \
00144 lr.line = __LINE__; \
00145 lr.method = logRoutine; \
00146 lr.timeStamp = getTimeStamp(); \
00147 LoggingProxy::audience(logAudience); \
00148 LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00149 getLogger()->log(lr); \
00150 LoggingProxy::audience(NULL); \
00151 } \
00152 else \
00153 { \
00154 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00155 std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00156 }
00157
00170 #define LOG_RECORD(logPriority, logMessage, logFile, logLine, logRoutine, logTime, logSource) \
00171 if (getLogger()!=0) \
00172 { \
00173 Logging::BaseLog::LogRecord lr; \
00174 lr.priority = logPriority; \
00175 lr.message = logMessage; \
00176 lr.file = logFile; \
00177 lr.line = logLine; \
00178 lr.method = logRoutine; \
00179 lr.timeStamp = logTime; \
00180 getNamedLogger(logSource)->log(lr); \
00181 } \
00182 else \
00183 { \
00184 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00185 std::cerr << logFile << ", line=" << logLine << std::endl; \
00186 }
00187
00188
00200 #define LOG_GLOBAL_RECORD(logPriority, logMessage, logFile, logLine, logRoutine, logTime) \
00201 if (getLogger()!=0) \
00202 { \
00203 Logging::BaseLog::LogRecord lr; \
00204 lr.priority = logPriority; \
00205 lr.message = logMessage; \
00206 lr.file = logFile; \
00207 lr.line = logLine; \
00208 lr.method = logRoutine; \
00209 lr.timeStamp = logTime; \
00210 getLogger()->log(lr); \
00211 } \
00212 else \
00213 { \
00214 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00215 std::cerr << logFile << ", line=" << logLine << std::endl; \
00216 }
00217
00218
00227 #define STATIC_LOG(priority, routine, text) \
00228 Logging::Logger::getStaticLogger()->log(priority, text, __FILE__, __LINE__, routine);
00229
00241 #define STATIC_LOG_RECORD(logPriority, logMessage, logFile, logLine, logRoutine, logTime) \
00242 { \
00243 Logging::BaseLog::LogRecord lr; \
00244 lr.priority = logPriority; \
00245 lr.message = logMessage; \
00246 lr.file = logFile; \
00247 lr.line = logLine; \
00248 lr.method = logRoutine; \
00249 lr.timeStamp = logTime; \
00250 Logging::Logger::getStaticLogger()->log(lr); \
00251 }
00252
00262 #define STATIC_LOG_TO_AUDIENCE(priority, routine, text, logAudience) \
00263 LoggingProxy::audience(logAudience); \
00264 LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00265 Logging::Logger::getStaticLogger()->log(Logging::ace2acsPriority(priority), text, __FILE__, __LINE__, routine);
00266
00273 #define AUTO_TRACE(routine) \
00274 Logging::LogTrace::LogTraceSmartPtr __autoTraceLogTraceSmartPtrInstance(new Logging::LogTrace(getLogger(), routine, __FILE__, __LINE__));
00275
00282 #define AUTO_STATIC_TRACE(routine) \
00283 Logging::LogTrace::LogTraceSmartPtr __autoTraceLogTraceSmartPtrInstance(new Logging::LogTrace(Logging::Logger::getStaticLogger(), routine, __FILE__, __LINE__));
00284
00292 #define LOG_TO_DEVELOPER(logPriority, logMessage) \
00293 LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::DEVELOPER);
00294
00302 #define STATIC_LOG_TO_DEVELOPER(logPriority, logMessage) \
00303 STATIC_LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::DEVELOPER);
00304
00312 #define LOG_TO_OPERATOR( logPriority, logMessage) \
00313 LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::OPERATOR);
00314
00322 #define STATIC_LOG_TO_OPERATOR( logPriority, logMessage) \
00323 STATIC_LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::OPERATOR);
00324
00332 #define LOG_TO_SCIENCE( logPriority, logMessage) \
00333 LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::SCILOG);
00334
00342 #define STATIC_LOG_TO_SCIENCE( logPriority, logMessage) \
00343 STATIC_LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::SCILOG);
00344
00355 #define LOG_TO_SCILOG( logPriority, logMessage) \
00356 LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::SCILOG);
00357
00368 #define STATIC_LOG_TO_SCILOG( logPriority, logMessage) \
00369 STATIC_LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::SCILOG);
00370
00380 #define LOG_TO_AUDIENCE_WITH_LOGGER(logPriority, logMessage, logAudience, logger) \
00381 if (logger != 0) { \
00382 Logging::BaseLog::LogRecord lr; \
00383 lr.priority = Logging::ace2acsPriority(logPriority); \
00384 lr.message = logMessage; \
00385 lr.file = __FILE__; \
00386 lr.line = __LINE__; \
00387 lr.method = __PRETTY_FUNCTION__; \
00388 lr.timeStamp = ::getTimeStamp(); \
00389 LoggingProxy::audience(logAudience); \
00390 LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00391 logger->log(lr); \
00392 } else { \
00393 std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00394 std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00395 }
00396
00405 #define LOG_TO_OPERATOR_WITH_LOGGER( logPriority, logMessage, logger) \
00406 LOG_TO_AUDIENCE_WITH_LOGGER(logPriority, logMessage, log_audience::OPERATOR, logger);
00407
00416 #define LOG_TO_DEVELOPER_WITH_LOGGER(logPriority, logMessage, logger) \
00417 LOG_TO_AUDIENCE_WITH_LOGGER(logPriority, logMessage, log_audience::DEVELOPER, logger);
00418
00419 #else
00420 #include "loggingLog4cppMACROS.h"
00421 #endif
00422
00423 #endif