我想知道Umbraco是否有办法记录我们在加载xslt或用户控件时无法获得的错误.通常它会显示一个红色框,表示无法加载控件和内容.有没有办法正确记录这个?
提前致谢.
解决方法
首先,它不是真的支持…当出现错误时,它会输出html并写入asp.net跟踪日志.
继承人我将如何处理这个问题.我的大多数Umbraco安装都使用Elmah进行异常日志记录,使用log4net进行应用程序日志记录.这应该会给你输出任何错误.
using System; using System.Linq; using System.Web; public class MacroLogging : IHttpModule { public void Init(HttpApplication context) { context.LogRequest += ContextLogRequest; } static void ContextLogRequest(object source,EventArgs e) { var app = (HttpApplication)source; var context = app.Context; context.Trace.TraceFinished += TraceFinished; } static void TraceFinished(object sender,TraceContextEventArgs e) { var records = e.TraceRecords.Cast<TraceContextRecord>(); var categoryTypes = new[] {"Macro","macro","umbracoMacro"}; var traceOutput = records.Where(p => categoryTypes.Contains(p.Category) && p.IsWarning))); foreach (var entry in traceOutput) { //Your Output entry.Message } } public void Dispose() {} }
只需将模块添加到web.config即可.我没有测试,因为它是凌晨1点:)但整体概念应该工作.