Umbraco CMS(.NET):加载xslt /用户控件的日志错误

MSI*_*MSI 5 asp.net user-controls umbraco

我想知道Umbraco是否有办法记录我们在加载xslt或用户控件时无法获得的错误.通常它会显示一个红色框,表示无法加载控件和内容.有没有办法正确记录这个?

提前致谢.

Eli*_*ver 4

首先,它并没有得到真正的支持...当发生错误时,它会输出 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() {}

}
Run Code Online (Sandbox Code Playgroud)

只需将该模块添加到您的 web.config 中即可。我还没有测试过,因为现在是凌晨 1 点:),但总体概念应该可行。