我有一个图书馆大会,产出跟踪信息,和一个客户它的应用程序,增加了一个跟踪侦听通过应用程序。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/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top