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

关于asp.net - Umbraco CMS(.NET): Logging errors loading xslt/User controls,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3809618/

10-14 21:11