2012-03-28 4 views
5

szukałem na niektóre best practices for NLog kiedy zauważyłem następującą konfigurację docelowa:Jaka jest różnica między AsyncWrapper i BufferingWrapper w NLog v2?

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

Z tego co rozumiem to zawija cel plików z AsyncWrapper jak również z BufferingWrapper ...

Jaki jest różnica między tymi dwoma? Czy potrzebuję obu, ponieważ strona NLog opisuje oba jako "buforowanie" ...

Odpowiedz

3

Po wystarczającym komunikacie (określonym parametrem bufferSize) w buforze, BufferingWrapper zablokuje i zapisze komunikaty do swojego celu. Dzwoniący będzie musiał poczekać do zakończenia pisania.

AsynWrapper używa oddzielnego wątku do obsługi zapisów. Połączenia natychmiast powracają, a dzwoniący może kontynuować pracę, a dziennik zostanie zapisany później.

+1

BuforowanieWrapper wygląda (teraz) na asynchroniczne, jeśli użyto parametru 'slidingTimeout'. https://github.com/nlog/nlog/wiki/BufferingWrapper-target –

Powiązane problemy