¿Cuándo usar 'contexto de diagnóstico anidado' (NDC)?

Jugando con log4net, he visto la posibilidad de usar una pila de etiquetas de contexto por subproceso llamada NDC.

Las etiquetas empujadas en esta pila se muestran en un PatternLayout especificando el%x o la%ndc parámetro de formato

El uso es algo como:

ILog log = log4net.LogManager.GetLogger(...) ;

//pattern layout format: "[%ndc] - %message%newline"

log.Info("message 1"); 
using(log4net.NDC.Push("context")
{
    using(log4net.NDC.Push("inner_context")
    {
      log.Info("message 2"); 
    }
    log.Info("message 3"); 
}
log.Info("message 4"); 

La salida es algo así como:

null - message 1
context inner_context - message 2
context - message 3
null - message 4

En su experiencia de programación con log4net, ¿cuándo encontró útil esta característica?

Respuestas a la pregunta(4)

Su respuesta a la pregunta