|
|
| 87 |
|
87 |
|
| 88 |
#ifdef NS3_LOG_ENABLE |
88 |
#ifdef NS3_LOG_ENABLE |
| 89 |
|
89 |
|
|
|
90 |
|
| 91 |
namespace ns3 { |
| 92 |
|
| 93 |
struct EndParameterListStruct {}; |
| 94 |
extern EndParameterListStruct EndParameterList; |
| 95 |
|
| 96 |
class ParameterLogger : public std::ostream |
| 97 |
{ |
| 98 |
int m_itemNumber; |
| 99 |
public: |
| 100 |
ParameterLogger () |
| 101 |
: m_itemNumber (0) |
| 102 |
{} |
| 103 |
|
| 104 |
template<typename T> |
| 105 |
ParameterLogger& operator<< (T param) |
| 106 |
{ |
| 107 |
switch (m_itemNumber) |
| 108 |
{ |
| 109 |
case 0: // first item is actually the function name |
| 110 |
std::clog << param << " ("; |
| 111 |
break; |
| 112 |
case 1: |
| 113 |
std::clog << param; |
| 114 |
break; |
| 115 |
default: // parameter following a previous parameter |
| 116 |
std::clog << ", " << param; |
| 117 |
break; |
| 118 |
} |
| 119 |
m_itemNumber++; |
| 120 |
return *this; |
| 121 |
} |
| 122 |
|
| 123 |
ParameterLogger& |
| 124 |
operator << (EndParameterListStruct dummy) |
| 125 |
{ |
| 126 |
std::clog << ")" << std::endl; |
| 127 |
m_itemNumber = 0; |
| 128 |
return *this; |
| 129 |
} |
| 130 |
}; |
| 131 |
|
| 132 |
|
| 133 |
extern ParameterLogger g_parameterLogger; |
| 134 |
|
| 135 |
} |
| 136 |
|
| 137 |
|
| 90 |
#define NS_LOG(level, msg) \ |
138 |
#define NS_LOG(level, msg) \ |
| 91 |
do \ |
139 |
do \ |
| 92 |
{ \ |
140 |
{ \ |
|
|
| 123 |
#define NS_LOG_FUNCTION \ |
171 |
#define NS_LOG_FUNCTION \ |
| 124 |
NS_LOG_F(ns3::LOG_FUNCTION) |
172 |
NS_LOG_F(ns3::LOG_FUNCTION) |
| 125 |
|
173 |
|
|
|
174 |
// XXX Soon to be deprecated in favor of NS_LOG_PARAMS XXX |
| 126 |
#define NS_LOG_PARAM(msg) \ |
175 |
#define NS_LOG_PARAM(msg) \ |
| 127 |
NS_LOG(ns3::LOG_PARAM, msg) |
176 |
NS_LOG(ns3::LOG_PARAM, msg) |
|
|
177 |
|
| 178 |
#define NS_LOG_PARAMS(parameters) \ |
| 179 |
do \ |
| 180 |
{ \ |
| 181 |
if (g_log.IsEnabled (ns3::LOG_PARAM)) \ |
| 182 |
{ \ |
| 183 |
g_parameterLogger << __PRETTY_FUNCTION__ \ |
| 184 |
<< parameters \ |
| 185 |
<< EndParameterList; \ |
| 186 |
} \ |
| 187 |
} \ |
| 188 |
while (false) |
| 189 |
|
| 128 |
|
190 |
|
| 129 |
#define NS_LOG_LOGIC(msg) \ |
191 |
#define NS_LOG_LOGIC(msg) \ |
| 130 |
NS_LOG(ns3::LOG_LOGIC, msg) |
192 |
NS_LOG(ns3::LOG_LOGIC, msg) |