2010-09-28 4 views
5

Umbraco에서 xslt 또는 사용자 정의 컨트롤을로드하지 못할 때 발생하는 오류를 기록하는 방법이 있는지 궁금합니다. 일반적으로 컨트롤과 물건을로드 할 수 없다는 빨간색 상자가 표시됩니다. 이 기록을 올바르게 기록하는 방법이 있습니까?Umbraco CMS (.NET) : xslt/사용자 컨트롤을로드하는 중 로깅 오류

미리 감사드립니다.

+0

누군가는 적어도 답변을 게시하기를 바랍니다 ... 정말 해결책을 찾고 있습니다. – MSI

답변

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에 추가하기 만하면됩니다. 1am 인 것에 따라 나는 시험하지 않았다. :) 그러나 전체의 개념은 움직여야한다.

+0

우와 고마워, 아무도 대답 할 생각 없어! 나는 테스트하고 대답으로 표시 할 것이다. – MSI

+0

나는 이것을 시험해 보았지만, MacroLogging-> Init 메서드에서 런타임 예외를 주면서, 필요한 연산에 IIS 통합 모드가 필요하다는 것을 알았고 고전적이다. 어떤 생각을 어떻게 해결할 수 있을까요? –