Tôi đang cố đăng nhập thông qua mục tiêu thư tín NLog. Nó hoạt động tốt, nhưng tôi muốn bọc mục tiêu thư với BufferedTargetWrapper
để đệm các thông điệp tường trình cho đến khi mã được xác định trước, nơi tôi muốn xóa bộ đệm theo cách thủ công và gửi thông điệp nhật ký được đệm ưu tiên bằng một thư (như được định nghĩa trong thư mục tiêu).Lưu trữ thông điệp tường trình trong NLog và tự xóa chúng để nhắm mục tiêu
Nếu tôi xác định FlushTimeout
hoặc BufferSize
của BufferedTargetWrapper
mọi thứ vẫn hoạt động tốt như đã cho. Nhưng nếu FlushTimeout và BufferSize không được thiết lập, tôi không thể làm cho nó hoạt động.
Giống như trả lời trong câu hỏi này trên SO Force BufferingTargetWrapper to empty tôi không có một cái gì đó như thế:
LogManager.Configuration.AllTargets.Where(t => t != null && t is BufferingTargetWrapper).ToList().
ForEach(b => ((BufferingTargetWrapper)b).Flush(null));
Nhưng tài liệu và câu trả lời này là mâu thuẫn với NLog Version tôi (2.0.0.2000). Không có phương pháp tuôn ra không có tham số, chỉ có phương pháp tuôn ra cho mục tiêu không đồng bộ.
Có cách nào để buộc BufferingTargetWrapper xóa tất cả các thư đã ghi vào mục tiêu được gói (để gửi thư qua thư) không?
Hoạt động tốt đẹp! Cảm ơn! – dasheddot
Điều này hoạt động rất tốt! –