2013-03-19 95 views
2

我已经在使用NLOG的AspNetBufferingWrapper包装我的web.config以下目标扩展NLOG扩展AspNetBufferingWrapper不工作

<wrapper-target type="ASPNetBufferingWrapper" name="aspNetBuffer"> 
    <wrapper-target type="PostFilteringWrapper" name="postFilter" defaultFilter="level >= LogLevel.Debug"> 
     <target-ref name="logDB" /> 
     <when exists="level >= LogLevel.Warn" filter="level >= LogLevel.Trace" /> 
    </wrapper-target> 
    </wrapper-target> 

目标 - 裁判工作没有包装或其他包装。 我有HTTP模块的文档建议

<httpModules> 
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" /> 
    <add name="NLog" type="NLog.Web.NLogHttpModule, NLog.Extended" /> 
</httpModules> 

我把它与NLog.2.0.0.2000和NLog.Extended.2.0.0.2000一个MVC3项目配置。

我已经包括elmah模块来指出该模块正在工作。 搜索后我发现集成模式下的IIS 7使用system.webServer模块。我注意到elmah模块已经配置了这个部分,所以我包含了NLog.Extended。

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <modules runAllManagedModulesForAllRequests="true"> 
     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" /> 
     <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" /> 
     <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" /> 
     <add name="NLog" type="NLog.Web.NLogHttpModule, NLog.Extended" preCondition="managedHandler" /> 
    </modules> 
    </system.webServer> 

好了,它不工作,以及...我已经激活追踪模式时,内部NLOG记录,我看到以下内容:

2013-03-19 16:06:58.2933 Trace Sending buffered events to wrapped target: PostFilteringWrapper Target[postFilter](AsyncWrapper Target[logDB](Database Target[logDB_wrapped])). 
2013-03-19 16:06:58.2933 Trace Running PostFilteringWrapper Target[postFilter](AsyncWrapper Target[logDB](Database Target[logDB_wrapped])) on 0 events 
2013-03-19 16:06:58.3053 Trace Filter to apply: (level >= Debug) 
2013-03-19 16:06:58.3053 Trace After filtering: 0 events. 

我不记得自己能做什么/搜索。我错过了什么吗?

回答

0

仅写入AsyncWrapper的日志文件的原因是因为您的ASPNetBufferingWrapperAsyncWrapper具有相同的名称。另外你的文件目标也有相同的名字。

但看你的配置文件时,这只能被看见,http://pastebin.com/3cP83PWaNLog issues page

贴如果你的目标有唯一的名字这两个文件将被写入。