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 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 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 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 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.

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 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 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 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 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::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 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 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 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 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 void clear (  )  [static]

Clear all entries in the MDC.


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