我想知道在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点),但总体概念应该是可行的。