AsyncWrapper target

在日志写入的时候,提供异步,缓冲区写入

语法:

<targets>
  <target xsi:type="AsyncWrapper"
          name="String"
          queueLimit="Integer"
          timeToSleepBetweenBatches="Integer"
          batchSize="Integer"
          overflowAction="Enum">
    <target xsi:type="wrappedTargetType" ...target properties... />
  </target>
</targets>

 

参数

一般配置

name - target.的名称

缓冲区配置

queueLimit - 缓存队列的大小。默认1000

timeToSleepBetweenBatches - 每一批次的间隔。默认:50

batchSize - 一个批次的大小。默认:100

overflowAction - 当缓冲区溢出时的行为。默认:Discard
可能的值:

  • Block - 阻止写入直到缓冲区有空间

    以下情况不被支持:

    • NLog v1.0 for .NET Compact Framework 1.0
    • NLog v1.0 for .NET Compact Framework 2.0
    • NLog v2.0 for .NET Compact Framework 2.0
    • NLog v2.0 for .NET Compact Framework 3.5
  • Discard - 抛弃溢出的数据.

  • Grow - 增大缓冲区

备注:

异步 target wrapper 使得执行日志更加的快速。基于消息队列,在独立的线程中执行。因为异步日志一个很常见的解决方案,所以NLog提供了一个简化的写法,在需要异步的target上面加上  async="true"特性就可以了

<targets async="true"> ... your targets go here ... </targets>
 
posted @ 2014-11-06 20:07  争世不悔  阅读(932)  评论(0编辑  收藏  举报