题
我有一个图书馆大会,产出跟踪信息,和一个客户它的应用程序,增加了一个跟踪侦听通过应用程序。config。如果我们使用图书馆ASP.NET不配置系统。诊断跟踪,我怎么可能'抓住跟踪输出?
奖金的问题:我可以做的事情与 Elmah 来捕获和记录这些信息?我们ASP.NET 应用程序目前使用Elmah为错误记录,但这是我所知道的在那边的事情。
解决方案
用于编程附加跟踪文件侦听并启用在web.config中跟踪写入代码 - 你将后进行
其他提示
我认为,只要图书馆的产出跟踪信息,这些信息可以捕捉到任何专门工具(如 DebugView)或甚至一所房子长大的工具,不管ASP.NET 配置。
我看这是老回答,但..我刚刚有同样的问题,我想出了
有关的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) { }
}
}
在听者
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)
{
}
}
}
和,在GO代码(你可以用你的web.config)
Tracer.Register();
在 HTTP博客://truenorthit.co.uk/2015/04/17/trace-listener-for-elmah-asp-mvc-exception-logger/
不隶属于 StackOverflow