2013-03-19 5 views
2

У меня есть следующая цель в моей web.config с помощью AspNetBufferingWrapper обертки NLog ExtendedNLog 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> 

Ну, это не сработало, а ... Я активировал внутренний 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, потому что ваши ASPNetBufferingWrapper и AsyncWrapper имеют то же имя. Также вы используете одно и то же имя файла.

Но это может только было видно при взгляде на ваш конфигурационный файл, http://pastebin.com/3cP83PWa размещен на NLog issues page

Если вы цели имеют уникальные имена как файлы будут записаны.

 Смежные вопросы

  • Нет связанных вопросов^_^