• Classes
  • Modules
  • Namespaces
  • Files
  • Related Pages
  • File List
  • File Members

loggingMACROS.h

Go to the documentation of this file.
00001 #ifndef logging_macros_H
00002 #define logging_macros_H
00003 /*******************************************************************************
00004 * ALMA - Atacama Large Millimiter Array
00005 * (c) UNSPECIFIED - FILL IN, 2005
00006 *
00007 * This library is free software; you can redistribute it and/or
00008 * modify it under the terms of the GNU Lesser General Public
00009 * License as published by the Free Software Foundation; either
00010 * version 2.1 of the License, or (at your option) any later version.
00011 *
00012 * This library is distributed in the hope that it will be useful,
00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015 * Lesser General Public License for more details.
00016 *
00017 * You should have received a copy of the GNU Lesser General Public
00018 * License along with this library; if not, write to the Free Software
00019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
00020 *
00021 * "@(#) $Id: loggingMACROS.h,v 1.30 2010/03/30 20:29:09 javarias Exp $"
00022 *
00023 * who       when      what
00024 * --------  --------  ----------------------------------------------
00025 * dfugate  2005-04-04  created
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 
00038 #define LM_DELOUSE 010000
00039 
00049 #define LOG(priority, routine, text) \
00050 if (getLogger()!=0) \
00051 { \
00052   getLogger()->log(priority, text, __FILE__, __LINE__, routine); \
00053 } \
00054 else \
00055 { \
00056   std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00057   std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00058 }
00059 
00060 
00071 #define LOG_FULL(logPriority, logRoutine, logMessage, logAudience, logArray, logAntenna) \
00072 if (getLogger()!=0) \
00073 { \
00074     Logging::BaseLog::LogRecord lr; \
00075     lr.priority  = Logging::ace2acsPriority(logPriority); \
00076     lr.message   = logMessage; \
00077     lr.file      = __FILE__; \
00078     lr.line      = __LINE__; \
00079     lr.method    = logRoutine; \
00080     lr.timeStamp = getTimeStamp(); \
00081     LoggingProxy::audience(logAudience); \
00082     LoggingProxy::array(logArray); \
00083     LoggingProxy::antenna(logAntenna); \
00084     LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00085     getLogger()->log(lr); \
00086          LoggingProxy::audience(NULL); \
00087 } \
00088 else \
00089 { \
00090   std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00091   std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00092 }
00093 
00103 #define LOG_WITH_ANTENNA_CONTEXT(logPriority, logRoutine, logMessage, logArray, logAntenna) \
00104 if (getLogger()!=0) \
00105 { \
00106     Logging::BaseLog::LogRecord lr; \
00107     lr.priority  = Logging::ace2acsPriority(logPriority); \
00108     lr.message   = logMessage; \
00109     lr.file      = __FILE__; \
00110     lr.line      = __LINE__; \
00111     lr.method    = logRoutine; \
00112     lr.timeStamp = getTimeStamp(); \
00113     LoggingProxy::array(logArray); \
00114     LoggingProxy::antenna(logAntenna); \
00115     LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00116     getLogger()->log(lr); \
00117 } \
00118 else \
00119 { \
00120   std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00121   std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00122 }
00123 
00132 #define LOG_TO_AUDIENCE(logPriority, logRoutine, logMessage, logAudience) \
00133 if (getLogger()!=0) \
00134 { \
00135     Logging::BaseLog::LogRecord lr; \
00136     lr.priority  = Logging::ace2acsPriority(logPriority); \
00137     lr.message   = logMessage; \
00138     lr.file      = __FILE__; \
00139     lr.line      = __LINE__; \
00140     lr.method    = logRoutine; \
00141     lr.timeStamp = getTimeStamp(); \
00142     LoggingProxy::audience(logAudience); \
00143     LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00144     getLogger()->log(lr); \
00145          LoggingProxy::audience(NULL); \
00146 } \
00147 else \
00148 { \
00149   std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00150   std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00151 }
00152 
00165 #define LOG_RECORD(logPriority, logMessage, logFile, logLine, logRoutine, logTime, logSource) \
00166 if (getLogger()!=0) \
00167 { \
00168     Logging::BaseLog::LogRecord lr; \
00169     lr.priority  = logPriority; \
00170     lr.message   = logMessage; \
00171     lr.file      = logFile; \
00172     lr.line      = logLine; \
00173     lr.method    = logRoutine; \
00174     lr.timeStamp = logTime; \
00175     getNamedLogger(logSource)->log(lr); \
00176 } \
00177 else \
00178 { \
00179   std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00180   std::cerr << logFile << ", line=" << logLine << std::endl; \
00181 }
00182 
00183 
00195 #define LOG_GLOBAL_RECORD(logPriority, logMessage, logFile, logLine, logRoutine, logTime) \
00196 if (getLogger()!=0) \
00197 { \
00198     Logging::BaseLog::LogRecord lr; \
00199     lr.priority  = logPriority; \
00200     lr.message   = logMessage; \
00201     lr.file      = logFile; \
00202     lr.line      = logLine; \
00203     lr.method    = logRoutine; \
00204     lr.timeStamp = logTime; \
00205     getLogger()->log(lr); \
00206 } \
00207 else \
00208 { \
00209   std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00210   std::cerr << logFile << ", line=" << logLine << std::endl; \
00211 }
00212 
00213 
00222 #define STATIC_LOG(priority, routine, text) \
00223 Logging::Logger::getStaticLogger()->log(priority, text, __FILE__, __LINE__, routine);
00224 
00236 #define STATIC_LOG_RECORD(logPriority, logMessage, logFile, logLine, logRoutine, logTime) \
00237 { \
00238     Logging::BaseLog::LogRecord lr; \
00239     lr.priority  = logPriority; \
00240     lr.message   = logMessage; \
00241     lr.file      = logFile; \
00242     lr.line      = logLine; \
00243     lr.method    = logRoutine; \
00244     lr.timeStamp = logTime; \
00245     Logging::Logger::getStaticLogger()->log(lr); \
00246 }
00247 
00257 #define STATIC_LOG_TO_AUDIENCE(priority, routine, text, logAudience) \
00258     LoggingProxy::audience(logAudience); \
00259     LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00260     Logging::Logger::getStaticLogger()->log(Logging::ace2acsPriority(priority), text, __FILE__, __LINE__, routine);
00261 
00268 #define AUTO_TRACE(routine) \
00269 Logging::LogTrace::LogTraceSmartPtr __autoTraceLogTraceSmartPtrInstance(new Logging::LogTrace(getLogger(), routine, __FILE__, __LINE__));
00270 
00277 #define AUTO_STATIC_TRACE(routine) \
00278 Logging::LogTrace::LogTraceSmartPtr __autoTraceLogTraceSmartPtrInstance(new Logging::LogTrace(Logging::Logger::getStaticLogger(), routine, __FILE__, __LINE__));
00279 
00287 #define LOG_TO_DEVELOPER(logPriority, logMessage) \
00288     LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::DEVELOPER);
00289 
00297 #define STATIC_LOG_TO_DEVELOPER(logPriority, logMessage) \
00298     STATIC_LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::DEVELOPER);
00299 
00307 #define LOG_TO_OPERATOR( logPriority, logMessage) \
00308     LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::OPERATOR);
00309 
00317 #define STATIC_LOG_TO_OPERATOR( logPriority, logMessage) \
00318     STATIC_LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::OPERATOR);
00319 
00327 #define LOG_TO_SCIENCE( logPriority, logMessage) \
00328     LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::SCILOG);
00329 
00337 #define STATIC_LOG_TO_SCIENCE( logPriority, logMessage) \
00338     STATIC_LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::SCILOG);
00339 
00350 #define LOG_TO_SCILOG( logPriority, logMessage) \
00351     LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::SCILOG);
00352 
00363 #define STATIC_LOG_TO_SCILOG( logPriority, logMessage) \
00364     STATIC_LOG_TO_AUDIENCE(logPriority, __PRETTY_FUNCTION__, logMessage, log_audience::SCILOG);
00365 
00375 #define LOG_TO_AUDIENCE_WITH_LOGGER(logPriority, logMessage, logAudience, logger) \
00376 if (logger != 0) { \
00377     Logging::BaseLog::LogRecord lr; \
00378     lr.priority  = Logging::ace2acsPriority(logPriority); \
00379     lr.message   = logMessage; \
00380     lr.file      = __FILE__; \
00381     lr.line      = __LINE__; \
00382     lr.method    = __PRETTY_FUNCTION__; \
00383     lr.timeStamp = ::getTimeStamp();     \
00384     LoggingProxy::audience(logAudience); \
00385     LoggingProxy::Flags(LM_SOURCE_INFO | LM_RUNTIME_CONTEXT); \
00386     logger->log(lr); \
00387 } else { \
00388     std::cerr << "SEVERE LOGGING ERROR - getLogger() returned NULL: file="; \
00389     std::cerr << __FILE__ << ", line=" << __LINE__ << std::endl; \
00390 }
00391 
00400 #define LOG_TO_OPERATOR_WITH_LOGGER( logPriority, logMessage, logger) \
00401     LOG_TO_AUDIENCE_WITH_LOGGER(logPriority, logMessage, log_audience::OPERATOR, logger);
00402 
00411 #define LOG_TO_DEVELOPER_WITH_LOGGER(logPriority, logMessage, logger) \
00412     LOG_TO_AUDIENCE_WITH_LOGGER(logPriority, logMessage, log_audience::DEVELOPER, logger);
00413 #endif 

Generated on Thu Jul 8 2010 19:47:47 for ACS-9.0 C++ API by  doxygen 1.7.0