问题描述
我在想,如果有一个在一把umbraco的方式来记录我们得到,当它加载失败或XSLT用户控件的错误。一般来说它显示了一个红色框说它无法加载控制和东西。有没有一种方法能够正常登录呢?
I was wondering if there's a way in Umbraco to log errors that we get when it fails to load xslt or user-controls. Generally it shows a red box saying it couldn't load the control and stuff. Is there a way to properly log this?
在此先感谢。
推荐答案
首先,这不是真的...支持发生错误时它输出HTML和写入asp.net跟踪日志。
First off, it's not really supported... When errors occur it outputs html and writes to the asp.net trace log.
继承人我会怎么处理这个。我的大多数一把umbraco的安装使用ELMAH异常记录和log4net的申请记录。这应该给你输出的任何错误。
Heres how I would approach this. Most of my Umbraco installations use Elmah for exception logging and log4net for application logging. This should give you any errors on output.
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。我have't测试,因为它是凌晨1点:)但整体的概念应该工作。
Just add the module to your web.config. I have't tested as it's 1am :) but the overall concept should work.
这篇关于一把umbraco CMS(.NET):记录错误加载XSLT /用户控制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!