2016-05-23 91 views
1

我见过很多使用NLog配置API创建链接到多个规则的多个目标的示例。但是,我找不到任何关于如何使用NLog配置API来设置围绕另一个目标的包装目标的文档。这是我想与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> 

我已经得到了代码只用文件的目标工作,但不完全知道如何添加缓冲包装。

感谢您的任何帮助。

回答

1

这是我在ASP.Net核心应用程序中使用:

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