Los oyentes rastrear en ASP.NET
Pregunta
Tengo un ensamblado de biblioteca que da salida a la información de seguimiento, y una aplicación de cliente de Windows Forms que añade un escucha de seguimiento a través de app.config. Si tuviera que utilizar la biblioteca en ASP.NET, no configurado para System.Diagnostics trazado, ¿cómo podría hacerlo 'captura' la salida de rastreo?
Bono pregunta: ¿Puedo hacer algo con Elmah para capturar y registrar esta información? Nuestra aplicación ASP.NET utiliza actualmente Elmah para el registro de errores, pero eso es todo lo que sé de ese lado de las cosas.
Solución
escribir código para la fijación de un oyente archivo de seguimiento mediante programación y habilitar el seguimiento en web.config - que se llevará a cabo después de que
Otros consejos
Creo que, siempre y cuando las salidas de la biblioteca rastrear información, esta información podría ser capturada con cualquier herramienta especializada (como DebugView ) o incluso una herramienta de la casa crecido, independientemente de la configuración de ASP.NET.
Veo esto es viejo y contestado, pero .. sólo he tenido el mismo problema y se me ocurrió
clase de excepciones para TraceListener
namespace TrueNorth.Elmah.TraceListener
{
internal class TraceInformation : Exception
{
internal TraceInformation(string message) : base(message){}
}
internal class TraceError: Exception
{
internal TraceError(string message) : base(message) { }
}
internal class TraceWarning : Exception
{
internal TraceWarning(string message) : base(message) { }
}
internal class TraceWrite : Exception
{
internal TraceWrite(string message) : base(message) { }
}
}
El oyente
namespace TrueNorth.Elmah.TraceListener
{
internal class ElmahListener : System.Diagnostics.TraceListener
{
public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string format, params object[] args)
{
TraceEvent(eventCache, source, eventType, id, string.Format(format, args));
}
public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string message) //
{
Exception exception;
switch (eventType)
{
case TraceEventType.Information:
exception = new TraceInformation(message);
break;
case TraceEventType.Error:
exception = new TraceError(message);
break;
case TraceEventType.Warning:
exception = new TraceWarning(message);
break;
default:
exception = new TraceWrite(message);
break;
}
if (HttpContext.Current.Session == null)
{
ErrorLog.GetDefault(null).Log(new Error(exception));
}
else
{
ErrorSignal.FromCurrentContext().Raise(exception );
}
}
public override void TraceTransfer(TraceEventCache eventCache, string source, int id, string message, Guid relatedActivityId)
{
base.TraceTransfer(eventCache, source, id, message, relatedActivityId);
}
public override void Write(string message)
{
}
public override void WriteLine(string message)
{
}
}
}
Y, el código de IR (puede utilizar su web.config)
Tracer.Register();
http : //truenorthit.co.uk/2015/04/17/trace-listener-for-elmah-asp-mvc-exception-logger/