2016-05-23 60 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);