Apache Log4cxx  Version 1.5.0
Loading...
Searching...
No Matches
log4cxx::MDC Class Reference

A Mapped Diagnostic Context, or MDC in short, is an instrument for distinguishing interleaved log output from different sources. More...

#include <mdc.h>

Public Types

typedef std::map< LogString, LogStringMap
 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)
 Set the key context in the current thread's context map to value.
static void putLS (const LogString &key, const LogString &value)
 Set the key context in the current thread's context map to value.
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)
 Set the key context in the current thread's context map to value.
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)
 Set the key context in the current thread's context map to value.
static std::basic_string< UniCharget (const std::basic_string< UniChar > &key)
 Get the context identified by the key parameter.
static std::basic_string< UniCharremove (const std::basic_string< UniChar > &key)
 Remove the the context identified by the key parameter.
static void put (const CFStringRef &key, const CFStringRef &value)
 Set the key context in the current thread's context map to value.
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.

Detailed Description

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.

MDC provides a constructor and destructor which simply call the put and remove methods, allowing for automatic cleanup when the current scope ends.

MDC operations such as put, remove and clear affect only logging events emitted in the calling thread. The contexts of other threads are not changed. That is, contexts are managed on a per thread basis.

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

Member Typedef Documentation

◆ Map

String to string stl map.

Constructor & Destructor Documentation

◆ MDC() [1/4]

log4cxx::MDC::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
keycontext identifier
valuea string that distinguishes this context.

◆ ~MDC()

log4cxx::MDC::~MDC ( )

◆ MDC() [2/4]

log4cxx::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
keycontext identifier
valuea string that distinguishes this context.

◆ MDC() [3/4]

log4cxx::MDC::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
keycontext identifier
valuea string that distinguishes this context.

◆ MDC() [4/4]

log4cxx::MDC::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
keycontext identifier
valuea string that distinguishes this context.

Member Function Documentation

◆ clear()

void log4cxx::MDC::clear ( )
static

Clear all entries in the MDC.

A thread that adds to the diagnostic context by calling put should call this method before exiting to prevent unbounded memory usage.

◆ get() [1/5]

CFStringRef log4cxx::MDC::get ( const CFStringRef & key)
static

Get the context identified by the key parameter.

This method has no side effects.

Parameters
keycontext identifier.
Returns
value for key, empty if not set.

◆ get() [2/5]

bool log4cxx::MDC::get ( const LogString & key,
LogString & dest )
static

Gets the context identified by the key parameter.

Parameters
keycontext key.
destdestination to which value is appended.
Returns
true if key has associated value.

◆ get() [3/5]

std::basic_string< UniChar > log4cxx::MDC::get ( const std::basic_string< UniChar > & key)
static

Get the context identified by the key parameter.

This method has no side effects.

Parameters
keycontext identifier.
Returns
value for key, empty if not set.

◆ get() [4/5]

std::string log4cxx::MDC::get ( const std::string & key)
static

Get the context identified by the key parameter.

This method has no side effects.

Parameters
keycontext identifier.
Returns
value for key, empty if not set.

◆ get() [5/5]

std::wstring log4cxx::MDC::get ( const std::wstring & key)
static

Get the context identified by the key parameter.

This method has no side effects.

Parameters
keycontext identifier.
Returns
value for key, empty if not set.

◆ put() [1/4]

void log4cxx::MDC::put ( const CFStringRef & key,
const CFStringRef & value )
static

Set the key context in the current thread's context map to value.

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

Parameters
keycontext identifier
valuea string that distinguishes this context.

◆ put() [2/4]

void log4cxx::MDC::put ( const std::basic_string< UniChar > & key,
const std::basic_string< UniChar > & value )
static

Set the key context in the current thread's context map to value.

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

Parameters
keycontext identifier
valuethe value.

◆ put() [3/4]

void log4cxx::MDC::put ( const std::string & key,
const std::string & value )
static

Set the key context in the current thread's context map to value.

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

Parameters
keycontext identifier
valuea string that distinguishes this context.

◆ put() [4/4]

void log4cxx::MDC::put ( const std::wstring & key,
const std::wstring & value )
static

Set the key context in the current thread's context map to value.

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

Parameters
keycontext identifier
valuea string that distinguishes this context.

◆ putLS()

void log4cxx::MDC::putLS ( const LogString & key,
const LogString & value )
static

Set the key context in the current thread's context map to value.

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

◆ remove() [1/5]

CFStringRef log4cxx::MDC::remove ( const CFStringRef & key)
static

Remove the the context identified by the key parameter.

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

◆ remove() [2/5]

bool log4cxx::MDC::remove ( const LogString & key,
LogString & prevValue )
static

Remove the the context identified by the key parameter.

Parameters
keycontext identifier.
prevValuebuffer to which previous value is appended.
Returns
true if key existed in MDC.

◆ remove() [3/5]

std::basic_string< UniChar > log4cxx::MDC::remove ( const std::basic_string< UniChar > & key)
static

Remove the the context identified by the key parameter.

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

◆ remove() [4/5]

std::string log4cxx::MDC::remove ( const std::string & key)
static

Remove the the context identified by the key parameter.

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

◆ remove() [5/5]

std::wstring log4cxx::MDC::remove ( const std::wstring & key)
static

Remove the the context identified by the key parameter.

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

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