В чем разница между AsyncWrapper и BufferingWrapper в NLog v2? - PullRequest
6 голосов
/ 28 марта 2012

Я просматривал рекомендации для NLog , когда заметил следующую целевую конфигурацию:

<targets async="true">
  <default-wrapper xsi:type="BufferingWrapper" bufferSize="100"/>
  <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message}" />
  <!-- other stuff -->
</targets>

Из того, что я понимаю, это оборачивает целевой файл с помощью AsyncWrapper, а также с BufferingWrapper ...

В чем разница между двумя? Нужны ли мне оба, так как сайт NLog описывает оба как "буферизацию" ....

1 Ответ

4 голосов
/ 25 октября 2013

Как только в буфере будет достаточно сообщений (указанных параметром bufferSize), BufferingWrapper заблокирует и запишет сообщения в свою цель. Звонящий должен будет дождаться окончания записи.

AsynWrapper использует отдельный поток для обработки записей. Вызовы немедленно возвращаются, и вызывающая сторона может продолжить свою работу, а журнал записывается позже.

...