00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024 #ifndef _LOG4CPLUS_LOGGING_MACROS_HEADER_
00025 #define _LOG4CPLUS_LOGGING_MACROS_HEADER_
00026
00027 #include "dcmtk/oflog/config.h"
00028 #include "dcmtk/oflog/streams.h"
00029
00030
00031 #if defined(LOG4CPLUS_DISABLE_FATAL) && !defined(LOG4CPLUS_DISABLE_ERROR)
00032 #define LOG4CPLUS_DISABLE_ERROR
00033 #endif
00034 #if defined(LOG4CPLUS_DISABLE_ERROR) && !defined(LOG4CPLUS_DISABLE_WARN)
00035 #define LOG4CPLUS_DISABLE_WARN
00036 #endif
00037 #if defined(LOG4CPLUS_DISABLE_WARN) && !defined(LOG4CPLUS_DISABLE_INFO)
00038 #define LOG4CPLUS_DISABLE_INFO
00039 #endif
00040 #if defined(LOG4CPLUS_DISABLE_INFO) && !defined(LOG4CPLUS_DISABLE_DEBUG)
00041 #define LOG4CPLUS_DISABLE_DEBUG
00042 #endif
00043 #if defined(LOG4CPLUS_DISABLE_DEBUG) && !defined(LOG4CPLUS_DISABLE_TRACE)
00044 #define LOG4CPLUS_DISABLE_TRACE
00045 #endif
00046
00047 #if defined(_MSC_VER) && _MSC_VER >= 1400
00048 # define LOG4CPLUS_MACRO_FUNCTION() __FUNCSIG__
00049 #elif defined(__GNUC__)
00050 # if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
00051 # define LOG4CPLUS_MACRO_FUNCTION() __PRETTY_FUNCTION__
00052 # else
00053 # define LOG4CPLUS_MACRO_FUNCTION() __FUNCTION__
00054 # endif
00055 #else
00056 # define LOG4CPLUS_MACRO_FUNCTION() ""
00057 #endif
00058
00059 #if defined (LOG4CPLUS_SINGLE_THREADED)
00060
00061 namespace log4cplus
00062 {
00063
00064 extern LOG4CPLUS_EXPORT tostringstream _macros_oss;
00065
00066 LOG4CPLUS_EXPORT void _clear_tostringstream (tostringstream &);
00067
00068 }
00069
00070 #define LOG4CPLUS_MACRO_BODY(logger, logEvent, logLevel) \
00071 do { \
00072 if((logger).isEnabledFor(log4cplus::logLevel##_LOG_LEVEL)) { \
00073 log4cplus::_clear_tostringstream (log4cplus::_macros_oss); \
00074 log4cplus::_macros_oss << logEvent << OFStringStream_ends; \
00075 OFSTRINGSTREAM_GETOFSTRING(log4cplus::_macros_oss, _macros_string) \
00076 (logger).forcedLog(log4cplus::logLevel##_LOG_LEVEL, \
00077 _macros_string, __FILE__, __LINE__, \
00078 LOG4CPLUS_MACRO_FUNCTION()); \
00079 } \
00080 } while (0)
00081
00082
00083 #else // defined (LOG4CPLUS_SINGLE_THREADED)
00084
00085 #define LOG4CPLUS_MACRO_BODY(logger, logEvent, logLevel) \
00086 do { \
00087 if((logger).isEnabledFor(log4cplus::logLevel##_LOG_LEVEL)) { \
00088 log4cplus::tostringstream _log4cplus_buf; \
00089 _log4cplus_buf << logEvent << OFStringStream_ends; \
00090 OFSTRINGSTREAM_GETOFSTRING(_log4cplus_buf, _macro_string) \
00091 (logger).forcedLog(log4cplus::logLevel##_LOG_LEVEL, \
00092 _macro_string, __FILE__, __LINE__, \
00093 LOG4CPLUS_MACRO_FUNCTION()); \
00094 } \
00095 } while (0)
00096
00097
00098 #endif // defined (LOG4CPLUS_SINGLE_THREADED)
00099
00100 #define LOG4CPLUS_MACRO_STR_BODY(logger, logEvent, logLevel) \
00101 do { \
00102 if((logger).isEnabledFor(log4cplus::logLevel##_LOG_LEVEL)) { \
00103 (logger).forcedLog(log4cplus::logLevel##_LOG_LEVEL, \
00104 logEvent, __FILE__, __LINE__, \
00105 LOG4CPLUS_MACRO_FUNCTION()); \
00106 } \
00107 } while(0)
00108
00109
00116 #if !defined(LOG4CPLUS_DISABLE_TRACE)
00117 #define LOG4CPLUS_TRACE_METHOD(logger, logEvent) \
00118 log4cplus::TraceLogger _log4cplus_trace_logger(logger, logEvent, \
00119 __FILE__, __LINE__);
00120 #define LOG4CPLUS_TRACE(logger, logEvent) \
00121 LOG4CPLUS_MACRO_BODY (logger, logEvent, TRACE)
00122 #define LOG4CPLUS_TRACE_STR(logger, logEvent) \
00123 LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, TRACE)
00124 #else
00125 #define LOG4CPLUS_TRACE_METHOD(logger, logEvent) do { } while (0)
00126 #define LOG4CPLUS_TRACE(logger, logEvent) do { } while (0)
00127 #define LOG4CPLUS_TRACE_STR(logger, logEvent) do { } while (0)
00128 #endif
00129
00135 #if !defined(LOG4CPLUS_DISABLE_DEBUG)
00136 #define LOG4CPLUS_DEBUG(logger, logEvent) \
00137 LOG4CPLUS_MACRO_BODY (logger, logEvent, DEBUG)
00138 #define LOG4CPLUS_DEBUG_STR(logger, logEvent) \
00139 LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, DEBUG)
00140 #else
00141 #define LOG4CPLUS_DEBUG(logger, logEvent) do { } while (0)
00142 #define LOG4CPLUS_DEBUG_STR(logger, logEvent) do { } while (0)
00143 #endif
00144
00150 #if !defined(LOG4CPLUS_DISABLE_INFO)
00151 #define LOG4CPLUS_INFO(logger, logEvent) \
00152 LOG4CPLUS_MACRO_BODY (logger, logEvent, INFO)
00153 #define LOG4CPLUS_INFO_STR(logger, logEvent) \
00154 LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, INFO)
00155 #else
00156 #define LOG4CPLUS_INFO(logger, logEvent) do { } while (0)
00157 #define LOG4CPLUS_INFO_STR(logger, logEvent) do { } while (0)
00158 #endif
00159
00165 #if !defined(LOG4CPLUS_DISABLE_WARN)
00166 #define LOG4CPLUS_WARN(logger, logEvent) \
00167 LOG4CPLUS_MACRO_BODY (logger, logEvent, WARN)
00168 #define LOG4CPLUS_WARN_STR(logger, logEvent) \
00169 LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, WARN)
00170 #else
00171 #define LOG4CPLUS_WARN(logger, logEvent) do { } while (0)
00172 #define LOG4CPLUS_WARN_STR(logger, logEvent) do { } while (0)
00173 #endif
00174
00180 #if !defined(LOG4CPLUS_DISABLE_ERROR)
00181 #define LOG4CPLUS_ERROR(logger, logEvent) \
00182 LOG4CPLUS_MACRO_BODY (logger, logEvent, ERROR)
00183 #define LOG4CPLUS_ERROR_STR(logger, logEvent) \
00184 LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, ERROR)
00185 #else
00186 #define LOG4CPLUS_ERROR(logger, logEvent) do { } while (0)
00187 #define LOG4CPLUS_ERROR_STR(logger, logEvent) do { } while (0)
00188 #endif
00189
00195 #if !defined(LOG4CPLUS_DISABLE_FATAL)
00196 #define LOG4CPLUS_FATAL(logger, logEvent) \
00197 LOG4CPLUS_MACRO_BODY (logger, logEvent, FATAL)
00198 #define LOG4CPLUS_FATAL_STR(logger, logEvent) \
00199 LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, FATAL)
00200 #else
00201 #define LOG4CPLUS_FATAL(logger, logEvent) do { } while (0)
00202 #define LOG4CPLUS_FATAL_STR(logger, logEvent) do { } while (0)
00203 #endif
00204
00205 #endif
00206