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