在日志写入的时候,提供异步,缓冲区写入
语法:
<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>
|