2010-09-28 63 views
5

我想知道是否有一種方法在Umbraco記錄我們得到的錯誤,當它無法加載xslt或用戶控件。通常它會顯示一個紅框,表示無法加載控件和內容。有沒有辦法正確記錄這個?Umbraco CMS(.NET):記錄錯誤加載xslt /用戶控件

在此先感謝。

+0

嗯希望有人發佈一些答案,至少...真的在尋找一個解決方案。 – MSI 2010-09-28 23:00:59

回答

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() {} 

} 

只需將該模塊添加到您的web.config。我沒有測試,因爲它是凌晨1點:)但整體概念應該工作。

+0

哇,謝謝,以爲沒有人會回答!我會測試,然後標記爲答案:) – MSI 2010-10-01 07:12:43

+0

我試過這個,但它在MacroLogging-> Init方法給出運行時異常,說所需的操作需要IIS集成模式,並且我有經典。任何想法如何解決這個問題? – 2013-05-23 13:32:25