加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 19:58:20 所属栏目:asp.Net 来源:网络整理
导读:我想知道Umbraco是否有办法记录我们在加载xslt或用户控件时无法获得的错误.通常它会显示一个红色框,表示无法加载控件和内容.有没有办法正确记录这个? 提前致谢. 解决方法 首先,它不是真的支持…当出现错误时,它会输出html并写入asp.net跟踪日志. 继承人我将
我想知道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点:)但整体概念应该工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读