OFFIS DCMTK
Version 3.6.0
Main Page
Related Pages
Classes
Files
File List
File Members
oflog
include
dcmtk
oflog
logmacro.h
Go to the documentation of this file.
1
// Module: Log4CPLUS
2
// File: loggingmacros.h
3
// Created: 8/2003
4
// Author: Tad E. Smith
5
//
6
//
7
// Copyright 2003-2009 Tad E. Smith
8
//
9
// Licensed under the Apache License, Version 2.0 (the "License");
10
// you may not use this file except in compliance with the License.
11
// You may obtain a copy of the License at
12
//
13
// http://www.apache.org/licenses/LICENSE-2.0
14
//
15
// Unless required by applicable law or agreed to in writing, software
16
// distributed under the License is distributed on an "AS IS" BASIS,
17
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
// See the License for the specific language governing permissions and
19
// limitations under the License.
20
24
#ifndef _LOG4CPLUS_LOGGING_MACROS_HEADER_
25
#define _LOG4CPLUS_LOGGING_MACROS_HEADER_
26
27
#include "dcmtk/oflog/config.h"
28
#include "
dcmtk/oflog/streams.h
"
29
30
31
#if defined(LOG4CPLUS_DISABLE_FATAL) && !defined(LOG4CPLUS_DISABLE_ERROR)
32
#define LOG4CPLUS_DISABLE_ERROR
33
#endif
34
#if defined(LOG4CPLUS_DISABLE_ERROR) && !defined(LOG4CPLUS_DISABLE_WARN)
35
#define LOG4CPLUS_DISABLE_WARN
36
#endif
37
#if defined(LOG4CPLUS_DISABLE_WARN) && !defined(LOG4CPLUS_DISABLE_INFO)
38
#define LOG4CPLUS_DISABLE_INFO
39
#endif
40
#if defined(LOG4CPLUS_DISABLE_INFO) && !defined(LOG4CPLUS_DISABLE_DEBUG)
41
#define LOG4CPLUS_DISABLE_DEBUG
42
#endif
43
#if defined(LOG4CPLUS_DISABLE_DEBUG) && !defined(LOG4CPLUS_DISABLE_TRACE)
44
#define LOG4CPLUS_DISABLE_TRACE
45
#endif
46
47
#if defined(_MSC_VER) && _MSC_VER >= 1400
48
# define LOG4CPLUS_MACRO_FUNCTION() __FUNCSIG__
49
#elif defined(__GNUC__)
50
# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
51
# define LOG4CPLUS_MACRO_FUNCTION() __PRETTY_FUNCTION__
52
# else
53
# define LOG4CPLUS_MACRO_FUNCTION() __FUNCTION__
54
# endif
55
#else
56
# define LOG4CPLUS_MACRO_FUNCTION() ""
57
#endif
58
59
#if defined (LOG4CPLUS_SINGLE_THREADED)
60
61
namespace
log4cplus
62
{
63
64
extern
LOG4CPLUS_EXPORT tostringstream _macros_oss;
65
66
LOG4CPLUS_EXPORT
void
_clear_tostringstream (tostringstream &);
67
68
}
// namespace log4cplus
69
70
#define LOG4CPLUS_MACRO_BODY(logger, logEvent, logLevel) \
71
do { \
72
if((logger).isEnabledFor(log4cplus::logLevel##_LOG_LEVEL)) { \
73
log4cplus::_clear_tostringstream (log4cplus::_macros_oss); \
74
log4cplus::_macros_oss << logEvent << OFStringStream_ends; \
75
OFSTRINGSTREAM_GETOFSTRING(log4cplus::_macros_oss, _macros_string) \
76
(logger).forcedLog(log4cplus::logLevel##_LOG_LEVEL, \
77
_macros_string, __FILE__, __LINE__, \
78
LOG4CPLUS_MACRO_FUNCTION()); \
79
} \
80
} while (0)
81
82
83
#else // defined (LOG4CPLUS_SINGLE_THREADED)
84
85
#define LOG4CPLUS_MACRO_BODY(logger, logEvent, logLevel) \
86
do { \
87
if((logger).isEnabledFor(log4cplus::logLevel##_LOG_LEVEL)) { \
88
log4cplus::tostringstream _log4cplus_buf; \
89
_log4cplus_buf << logEvent << OFStringStream_ends; \
90
OFSTRINGSTREAM_GETOFSTRING(_log4cplus_buf, _macro_string) \
91
(logger).forcedLog(log4cplus::logLevel##_LOG_LEVEL, \
92
_macro_string, __FILE__, __LINE__, \
93
LOG4CPLUS_MACRO_FUNCTION()); \
94
} \
95
} while (0)
96
97
98
#endif // defined (LOG4CPLUS_SINGLE_THREADED)
99
100
#define LOG4CPLUS_MACRO_STR_BODY(logger, logEvent, logLevel) \
101
do { \
102
if((logger).isEnabledFor(log4cplus::logLevel##_LOG_LEVEL)) { \
103
(logger).forcedLog(log4cplus::logLevel##_LOG_LEVEL, \
104
logEvent, __FILE__, __LINE__, \
105
LOG4CPLUS_MACRO_FUNCTION()); \
106
} \
107
} while(0)
108
109
116
#if !defined(LOG4CPLUS_DISABLE_TRACE)
117
#define LOG4CPLUS_TRACE_METHOD(logger, logEvent) \
118
log4cplus::TraceLogger _log4cplus_trace_logger(logger, logEvent, \
119
__FILE__, __LINE__);
120
#define LOG4CPLUS_TRACE(logger, logEvent) \
121
LOG4CPLUS_MACRO_BODY (logger, logEvent, TRACE)
122
#define LOG4CPLUS_TRACE_STR(logger, logEvent) \
123
LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, TRACE)
124
#else
125
#define LOG4CPLUS_TRACE_METHOD(logger, logEvent) do { } while (0)
126
#define LOG4CPLUS_TRACE(logger, logEvent) do { } while (0)
127
#define LOG4CPLUS_TRACE_STR(logger, logEvent) do { } while (0)
128
#endif
129
135
#if !defined(LOG4CPLUS_DISABLE_DEBUG)
136
#define LOG4CPLUS_DEBUG(logger, logEvent) \
137
LOG4CPLUS_MACRO_BODY (logger, logEvent, DEBUG)
138
#define LOG4CPLUS_DEBUG_STR(logger, logEvent) \
139
LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, DEBUG)
140
#else
141
#define LOG4CPLUS_DEBUG(logger, logEvent) do { } while (0)
142
#define LOG4CPLUS_DEBUG_STR(logger, logEvent) do { } while (0)
143
#endif
144
150
#if !defined(LOG4CPLUS_DISABLE_INFO)
151
#define LOG4CPLUS_INFO(logger, logEvent) \
152
LOG4CPLUS_MACRO_BODY (logger, logEvent, INFO)
153
#define LOG4CPLUS_INFO_STR(logger, logEvent) \
154
LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, INFO)
155
#else
156
#define LOG4CPLUS_INFO(logger, logEvent) do { } while (0)
157
#define LOG4CPLUS_INFO_STR(logger, logEvent) do { } while (0)
158
#endif
159
165
#if !defined(LOG4CPLUS_DISABLE_WARN)
166
#define LOG4CPLUS_WARN(logger, logEvent) \
167
LOG4CPLUS_MACRO_BODY (logger, logEvent, WARN)
168
#define LOG4CPLUS_WARN_STR(logger, logEvent) \
169
LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, WARN)
170
#else
171
#define LOG4CPLUS_WARN(logger, logEvent) do { } while (0)
172
#define LOG4CPLUS_WARN_STR(logger, logEvent) do { } while (0)
173
#endif
174
180
#if !defined(LOG4CPLUS_DISABLE_ERROR)
181
#define LOG4CPLUS_ERROR(logger, logEvent) \
182
LOG4CPLUS_MACRO_BODY (logger, logEvent, ERROR)
183
#define LOG4CPLUS_ERROR_STR(logger, logEvent) \
184
LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, ERROR)
185
#else
186
#define LOG4CPLUS_ERROR(logger, logEvent) do { } while (0)
187
#define LOG4CPLUS_ERROR_STR(logger, logEvent) do { } while (0)
188
#endif
189
195
#if !defined(LOG4CPLUS_DISABLE_FATAL)
196
#define LOG4CPLUS_FATAL(logger, logEvent) \
197
LOG4CPLUS_MACRO_BODY (logger, logEvent, FATAL)
198
#define LOG4CPLUS_FATAL_STR(logger, logEvent) \
199
LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, FATAL)
200
#else
201
#define LOG4CPLUS_FATAL(logger, logEvent) do { } while (0)
202
#define LOG4CPLUS_FATAL_STR(logger, logEvent) do { } while (0)
203
#endif
204
205
#endif
/* _LOG4CPLUS_LOGGING_MACROS_HEADER_ */
206
Generated on Thu Dec 20 2012 for
OFFIS DCMTK
Version 3.6.0 by
Doxygen
1.8.2