【问题标题】:NLog Extended AspNetBufferingWrapper not workingNLog 扩展 AspNetBufferingWrapper 不工作
【发布时间】:2013-03-08 10:28:36
【问题描述】:

我的 web.config 中有以下目标,使用 NLog Extended 的 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>

目标引用在没有包装器或其他包装器的情况下工作。 我有文档推荐的httpmodule

<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>

我在 MVC3 项目中配置了 NLog.2.0.0.2000 和 NLog.Extended.2.0.0.2000。

我已包含 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>

好吧,它也不好用……我已经在 Trace 模式下激活了内部 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.

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

【问题讨论】:

    标签: asp.net-mvc-3 iis-7 httpmodule nlog


    【解决方案1】:

    之所以只写入来自AsyncWrapper 的日志文件,是因为您的ASPNetBufferingWrapperAsyncWrapper 具有相同的名称。您的文件目标也具有相同的名称。

    但这只能在查看您的配置文件时看到,http://pastebin.com/3cP83PWa 发布在 NLog issues page

    如果您的目标具有唯一名称,则两个文件都将被写入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-22
      • 2015-05-27
      • 2015-12-01
      • 1970-01-01
      • 2013-02-18
      • 2012-11-25
      • 1970-01-01
      • 2017-03-03
      相关资源
      最近更新 更多