Me estoy poniendo en práctica un formateador XML personalizado para log4.netcómo ingresar el nombre del método al utilizar clase contenedora con Log4net
public class ISDSApplicationEventsLayout : XmlLayoutBase
{
protected override void FormatXml(...)
{
//Location Info
writer.WriteStartElement("Method");
writer.WriteString(**loggingEvent.LocationInformation.MethodName * *);
writer.WriteEndElement();
}
}
El problema es ... ahora cuando llamo el método de registro de mi clase contenedora de registro. .. llamada tala
public static void logEvent(string message)
{
log.Info(isdsLog);
}
consigo la salida ....
<Method>logEvent</Method>
¿Cómo es posible tener el nombre del método que llama logEvent, en lugar de logEvent como el nombre del método?
Gracias
Pregunta Actualización:
Si esto anterior parece un poco complicado - lo que realmente estoy preguntando es: ¿Cómo se mantiene el contexto del método que se llama la función de registro de envolver en log4net ...
ejemplo ... DoWork método() llama ... -> registro envoltorio -> llamadas log4net ....
¿Cómo se hace la methodname = DoWork y no ha accedido WRA función pper ....
Posible duplicado de [Al usar envoltorio, cómo conservar el nombre de clase y método para que Log4Net inicie sesión?] (Http: // stackoverflow.com/questions/2049992/when-using-wrapper-how-to-preserve-class-and-method-name-for-log4net-to-log) –