2011-06-16 107 views
1

我想实现一个提供程序来执行错误日志记录,但在提出错误时我的提供程序从不会被调用。供应商没有执行

我提供一流的样子:

namespace DynF 
{ 
    public class LoggingProvider : System.Web.Management.BufferedWebEventProvider 
    { 

     public override void ProcessEventFlush(WebEventBufferFlushInfo flushInfo) 
     { 
      System.Diagnostics.Debug.WriteLine("logging!"); 
     } 
     public override void ProcessEvent(WebBaseEvent eventRaised) 
     { 
      System.Diagnostics.Debug.WriteLine("logging!"); 
     } 
     public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config) 
     { 
      System.Diagnostics.Debug.WriteLine("logging!"); 
     } 
     public override void Shutdown() 
     { 
      System.Diagnostics.Debug.WriteLine("logging!"); 
     } 
    } 
} 
在我的web.config

我: “日志”

<system.web> 
    <healthMonitoring enabled="true"> 
    <eventMappings> 
     <clear/> 
     <add name="All Errors" 
      type="System.Web.Management.WebBaseErrorEvent, System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" 
      startEventCode="0" 
      endEventCode="2147483647"/> 
    </eventMappings> 
    <providers> 
     <clear/> 
     <add name="LoggingProvider" type="DynF.LoggingProvider"/> 
    </providers> 
    <rules> 


     <clear/> 
     <add name="LogAllErrors" 
     eventName="All Errors" 
     provider="LoggingProvider"/> 
    </rules> 
    </healthMonitoring> 
</system.web> 

当运行抛出一个NonImplementedException一个testpage,该LoggingProvider从不输出(并且不管放在LoggingProvider类中的哪个位置都不会使应用程序停止)。我读this教程,据我了解,这应该足以使其工作。

我在这里失踪的是什么?

回答

1

我需要将buffermode添加到false。

<add name="LoggingProvider" type="DynF.LoggingProvider" buffer="false"/>