View | Details | Raw Unified | Return to bug 1496
Collapse All | Expand All

(-)a/src/core/model/log.cc (-1 / +29 lines)
 Lines 128-134    Link Here 
128
          component = tmp;
128
          component = tmp;
129
          if (component == myName || component == "*")
129
          if (component == myName || component == "*")
130
            {
130
            {
131
              int level = LOG_ALL | LOG_PREFIX_TIME | LOG_PREFIX_FUNC | LOG_PREFIX_NODE;
131
              int level = LOG_ALL | LOG_PREFIX_TIME | LOG_PREFIX_FUNC | LOG_PREFIX_NODE | LOG_PREFIX_LEVEL;
132
              Enable ((enum LogLevel)level);
132
              Enable ((enum LogLevel)level);
133
              return;
133
              return;
134
            }
134
            }
 Lines 186-191    Link Here 
186
                    {
186
                    {
187
                      level |= LOG_PREFIX_NODE;
187
                      level |= LOG_PREFIX_NODE;
188
                    }
188
                    }
189
                  else if (lev == "prefix_level")
190
                    {
191
                      level |= LOG_PREFIX_LEVEL;
192
                    }
193
                  else if (lev == "prefix_all")
194
                    {
195
                      level |= LOG_PREFIX_FUNC | LOG_PREFIX_TIME | LOG_PREFIX_NODE | LOG_PREFIX_LEVEL;
196
                    }
189
                  else if (lev == "level_error")
197
                  else if (lev == "level_error")
190
                    {
198
                    {
191
                      level |= LOG_LEVEL_ERROR;
199
                      level |= LOG_LEVEL_ERROR;
 Lines 256-261    Link Here 
256
  return m_name;
264
  return m_name;
257
}
265
}
258
266
267
std::map<enum LogLevel, std::string>
268
LogComponent::LevelLabels() const
269
{
270
  std::map<enum LogLevel, std::string> labels;
271
  labels[LOG_ERROR]    = "ERROR";
272
  labels[LOG_WARN]     = "WARN";
273
  labels[LOG_DEBUG]    = "DEBUG";
274
  labels[LOG_INFO]     = "INFO";
275
  labels[LOG_LOGIC]    = "LOGIC";
276
277
  return labels;
278
}
279
280
std::string
281
LogComponent::GetLevelLabel(const enum LogLevel level) const
282
{
283
  static std::map<enum LogLevel, std::string> levelLabel = LevelLabels ();
284
  return levelLabel[level];
285
}
286
  
259
287
260
void 
288
void 
261
LogComponentEnable (char const *name, enum LogLevel level)
289
LogComponentEnable (char const *name, enum LogLevel level)
(-)a/src/core/model/log.h (-2 / +14 lines)
 Lines 24-29    Link Here 
24
#include <string>
24
#include <string>
25
#include <iostream>
25
#include <iostream>
26
#include <stdint.h>
26
#include <stdint.h>
27
#include <map>
27
28
28
namespace ns3 {
29
namespace ns3 {
29
30
 Lines 48-59    Link Here 
48
  LOG_LOGIC          = 0x00000020, // control flow tracing within functions
49
  LOG_LOGIC          = 0x00000020, // control flow tracing within functions
49
  LOG_LEVEL_LOGIC    = 0x0000003f,
50
  LOG_LEVEL_LOGIC    = 0x0000003f,
50
51
51
  LOG_ALL            = 0x1fffffff, // print everything
52
  LOG_ALL            = 0x0fffffff, // print everything
52
  LOG_LEVEL_ALL      = LOG_ALL,
53
  LOG_LEVEL_ALL      = LOG_ALL,
53
54
54
  LOG_PREFIX_FUNC    = 0x80000000, // prefix all trace prints with function
55
  LOG_PREFIX_FUNC    = 0x80000000, // prefix all trace prints with function
55
  LOG_PREFIX_TIME    = 0x40000000, // prefix all trace prints with simulation time
56
  LOG_PREFIX_TIME    = 0x40000000, // prefix all trace prints with simulation time
56
  LOG_PREFIX_NODE    = 0x20000000  // prefix all trace prints with simulation node
57
  LOG_PREFIX_NODE    = 0x20000000, // prefix all trace prints with simulation node
58
  LOG_PREFIX_LEVEL   = 0x10000000  // prefix all trace prints with log level (severity)
57
};
59
};
58
60
59
/**
61
/**
 Lines 148-153    Link Here 
148
      __FUNCTION__ << "(): ";                                 \
150
      __FUNCTION__ << "(): ";                                 \
149
    }                                                           \
151
    }                                                           \
150
152
153
#define NS_LOG_APPEND_LEVEL_PREFIX(level)                       \
154
  if (g_log.IsEnabled (ns3::LOG_PREFIX_LEVEL))                  \
155
    {                                                           \
156
      std::clog << "[" << g_log.GetLevelLabel (level) << "] ";  \
157
    }                                                           \
158
  
159
151
#ifndef NS_LOG_APPEND_CONTEXT
160
#ifndef NS_LOG_APPEND_CONTEXT
152
#define NS_LOG_APPEND_CONTEXT
161
#define NS_LOG_APPEND_CONTEXT
153
#endif /* NS_LOG_APPEND_CONTEXT */
162
#endif /* NS_LOG_APPEND_CONTEXT */
 Lines 212-217    Link Here 
212
          NS_LOG_APPEND_NODE_PREFIX;                            \
221
          NS_LOG_APPEND_NODE_PREFIX;                            \
213
          NS_LOG_APPEND_CONTEXT;                                \
222
          NS_LOG_APPEND_CONTEXT;                                \
214
          NS_LOG_APPEND_FUNC_PREFIX;                            \
223
          NS_LOG_APPEND_FUNC_PREFIX;                            \
224
          NS_LOG_APPEND_LEVEL_PREFIX (level);                   \
215
          std::clog << msg << std::endl;                        \
225
          std::clog << msg << std::endl;                        \
216
        }                                                       \
226
        }                                                       \
217
    }                                                           \
227
    }                                                           \
 Lines 380-386    Link Here 
380
  void Enable (enum LogLevel level);
390
  void Enable (enum LogLevel level);
381
  void Disable (enum LogLevel level);
391
  void Disable (enum LogLevel level);
382
  char const *Name (void) const;
392
  char const *Name (void) const;
393
  std::string GetLevelLabel(const enum LogLevel level) const;
383
private:
394
private:
395
  std::map<enum LogLevel, std::string> LevelLabels() const;
384
  int32_t     m_levels;
396
  int32_t     m_levels;
385
  char const *m_name;
397
  char const *m_name;
386
};
398
};

Return to bug 1496