MDC Class Reference

List of all members.

Detailed Description

The MDC class is similar to the NDC class except that it is based on a map instead of a stack.

It provides mapped diagnostic contexts. A Mapped Diagnostic Context, or MDC in short, is an instrument for distinguishing interleaved log output from different sources. Log output is typically interleaved when a server handles multiple clients near-simultaneously.

The MDC is managed on a per thread basis. A child thread automatically inherits a copy of the mapped diagnostic context of its parent.


Public Types

typedef std::map< LogString,
LogString
Map
 String to string stl map.

Public Member Functions

 MDC (const std::string &key, const std::string &value)
 Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.
 ~MDC ()
 MDC (const std::wstring &key, const std::wstring &value)
 Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.
 MDC (const std::basic_string< UniChar > &key, const std::basic_string< UniChar > &value)
 Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.
 MDC (const CFStringRef &key, const CFStringRef &value)
 Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

Static Public Member Functions

static void put (const std::string &key, const std::string &value)
 Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.
static void putLS (const LogString &key, const LogString &value)
 Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.
static std::string get (const std::string &key)
 Get the context identified by the key parameter.
static bool get (const LogString &key, LogString &dest)
 Gets the context identified by the key parameter.
static std::string remove (const std::string &key)
 Remove the the context identified by the key parameter.
static void put (const std::wstring &key, const std::wstring &value)
 Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.
static std::wstring get (const std::wstring &key)
 Get the context identified by the key parameter.
static std::wstring remove (const std::wstring &key)
 Remove the the context identified by the key parameter.
static void put (const std::basic_string< UniChar > &key, const std::basic_string< UniChar > &value)
 Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.
static std::basic_string<
UniChar
get (const std::basic_string< UniChar > &key)
 Get the context identified by the key parameter.
static std::basic_string<
UniChar
remove (const std::basic_string< UniChar > &key)
 Remove the the context identified by the key parameter.
static void put (const CFStringRef &key, const CFStringRef &value)
 Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.
static CFStringRef get (const CFStringRef &key)
 Get the context identified by the key parameter.
static CFStringRef remove (const CFStringRef &key)
 Remove the the context identified by the key parameter.
static bool remove (const LogString &key, LogString &prevValue)
 Remove the the context identified by the key parameter.
static void clear ()
 Clear all entries in the MDC.


Member Typedef Documentation

typedef std::map<LogString, LogString> Map
 

String to string stl map.


Constructor & Destructor Documentation

MDC const std::string &  key,
const std::string &  value
 

Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

Both construction and destruction are expected to be on the same thread.

Parameters:
key key
value value.

~MDC  ) 
 

MDC const std::wstring &  key,
const std::wstring &  value
 

Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

Both construction and destruction are expected to be on the same thread.

Parameters:
key key
value value.

MDC const std::basic_string< UniChar > &  key,
const std::basic_string< UniChar > &  value
 

Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

Both construction and destruction are expected to be on the same thread.

Parameters:
key key
value value.

MDC const CFStringRef key,
const CFStringRef value
 

Places a key/value pair in the MDC for the current thread which will be removed during the corresponding destructor.

Both construction and destruction are expected to be on the same thread.

Parameters:
key key
value value.


Member Function Documentation

static void clear  )  [static]
 

Clear all entries in the MDC.

static CFStringRef get const CFStringRef key  )  [static]
 

Get the context identified by the key parameter.

This method has no side effects.

Parameters:
key key.
Returns:
value for key, empty if not set.

static std::basic_string<UniChar> get const std::basic_string< UniChar > &  key  )  [static]
 

Get the context identified by the key parameter.

This method has no side effects.

Parameters:
key key.
Returns:
value for key, empty if not set.

static std::wstring get const std::wstring &  key  )  [static]
 

Get the context identified by the key parameter.

This method has no side effects.

Parameters:
key key.
Returns:
value for key, empty if not set.

static bool get const LogString key,
LogString dest
[static]
 

Gets the context identified by the key parameter.

Parameters:
key context key.
dest destination to which value is appended.
Returns:
true if key has associated value.

static std::string get const std::string &  key  )  [static]
 

Get the context identified by the key parameter.

This method has no side effects.

Parameters:
key key.
Returns:
value for key, empty if not set.

static void put const CFStringRef key,
const CFStringRef value
[static]
 

Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.

If the current thread does not have a context map it is created as a side effect.

Parameters:
key key
value value.

static void put const std::basic_string< UniChar > &  key,
const std::basic_string< UniChar > &  value
[static]
 

Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.

If the current thread does not have a context map it is created as a side effect.

Parameters:
key key
value value.

static void put const std::wstring &  key,
const std::wstring &  value
[static]
 

Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.

If the current thread does not have a context map it is created as a side effect.

Parameters:
key key
value value.

static void put const std::string &  key,
const std::string &  value
[static]
 

Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.

If the current thread does not have a context map it is created as a side effect.

Parameters:
key key
value value.

static void putLS const LogString key,
const LogString value
[static]
 

Put a context value (the o parameter) as identified with the key parameter into the current thread's context map.

If the current thread does not have a context map it is created as a side effect.

static bool remove const LogString key,
LogString prevValue
[static]
 

Remove the the context identified by the key parameter.

Parameters:
key key.
prevValue buffer to which previous value is appended.
Returns:
true if key existed in MDC.

static CFStringRef remove const CFStringRef key  )  [static]
 

Remove the the context identified by the key parameter.

Parameters:
key key.
Returns:
value if key had been set, empty if not.

static std::basic_string<UniChar> remove const std::basic_string< UniChar > &  key  )  [static]
 

Remove the the context identified by the key parameter.

Parameters:
key key.
Returns:
value if key had been set, empty if not.

static std::wstring remove const std::wstring &  key  )  [static]
 

Remove the the context identified by the key parameter.

Parameters:
key key.
Returns:
value if key had been set, empty if not.

static std::string remove const std::string &  key  )  [static]
 

Remove the the context identified by the key parameter.

Parameters:
key key.
Returns:
value if key had been set, empty if not.


The documentation for this class was generated from the following file: