2012-03-28 28 views
5

Tôi đã nhìn qua một số các best practices for NLog khi tôi nhận thấy sau cấu hình mục tiêu:Sự khác nhau giữa việc chia sẻ AsyncWrapper và BufferingWrapper trong NLog v2 là gì?

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

Từ những gì tôi hiểu điều này kết thúc tốt đẹp các mục tiêu tập tin với AsyncWrapper cũng như với BufferingWrapper ...

là gì sự khác biệt giữa hai? Tôi có cần cả hai không, vì trang NLog mô tả cả hai là "đệm" ....

Trả lời

3

Khi có đủ thông báo (được chỉ định bởi tham số bufferSize) trong bộ đệm, BufferingWrapper sẽ chặn và ghi thư đến đích của nó. Người gọi sẽ cần đợi cho đến khi văn bản kết thúc.

AsynWrapper sử dụng một chuỗi riêng biệt để xử lý ghi. Các cuộc gọi trở lại ngay lập tức và người gọi có thể tiếp tục công việc của mình và nhật ký được ghi sau.

+1

BufferingWrapper xuất hiện (hiện tại) sẽ không đồng bộ nếu 'slidingTimeout' được sử dụng. https://github.com/nlog/nlog/wiki/BufferingWrapper-target –

Các vấn đề liên quan