【问题标题】:Umbraco CMS(.NET): Logging errors loading xslt/User controlsUmbraco CMS(.NET):加载 xslt/用户控件时记录错误
【发布时间】:2010-09-28 04:08:32
【问题描述】:

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

提前致谢。

【问题讨论】:

  • 嗯希望有人至少发布一些答案......真的在寻找解决方案。

标签: asp.net user-controls umbraco


【解决方案1】:

首先,它并不真正受支持...当发生错误时,它会输出 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 点 :) 但整体概念应该有效。

【讨论】:

  • 哇,谢谢,以为没人会回答!我会测试然后标记为答案:)
  • 这个我试过了,但是在MacroLogging->Init方法中给出了运行时异常,说需要的操作需要IIS集成模式,我有classic。知道如何解决这个问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 2012-09-25
相关资源
最近更新 更多