Как использовать API конфигурации NLog для определения цели оболочки?

Я видел множество примеров использования API конфигурации NLog для создания нескольких целей, связанных с несколькими правилами. Однако я не могу найти документацию о том, как использовать API конфигурации NLog для настройки цели-оболочки вокруг другой цели. Это конфигурация, которую я пытаюсь создать программно с помощью API:

<targets>
    <target xsi:type="BufferingWrapper" 
        name="InfoBufferingTarget"
        bufferSize="100"
        flushTimeout="60000"
        slidingTimeout="true">

        <target xsi:type="File"
          name="InfoFileTarget" 
          fileName="nlog.log"
          layout="${message}"
          keepFileOpen="true"
          openFileCacheSize="10"
          bufferSize="327680"
          networkWrites="true"
          createDirs="true"
          />
    </target>
</targets>

<rules>
  <logger name="*" minlevel="Info" writeTo="InfoBufferingTarget" />
</rules>

У меня есть код, работающий только с целевым файлом, но я не совсем уверен, как добавить оболочку буферизации.

Спасибо за любую помощь.


person M.Bosse    schedule 23.05.2016    source источник


Ответы (1)


Это то, что я использую в своем приложении ASP.Net Core:

loggerFactory.AddNLog();
var configuration = LogManager.Configuration;

var target = new FileTarget {
    Name = "log",
    FileName = "logs/logging.log",
    Layout = "${longdate}|${eventproperties:item=EventId.Id}|${logger}|${uppercase:${level}}|  ${message} ${exception}",
    ArchiveEvery = FileArchivePeriod.Day
}

var wrappedTarget = new AsyncTargetWrapper {
    Name = "wrappedTarget",
    WrappedTarget = target
};

configuration.AddTarget(wrappedTarget);
person JD987    schedule 14.01.2017