TickZoom là một ứng dụng hiệu suất rất cao sử dụng thư viện song song riêng của nó và nhiều luồng O/S để sử dụng trơn tru các máy tính đa lõi.Ghi vào file log4net FileAppender với nhiều chủ đề về hiệu năng
Ứng dụng truy cập nút cổ chai nơi người dùng cần ghi thông tin vào LogAppender từ các chuỗi O/S riêng biệt.
FileAppender sử dụng tính năng MinimalLock để mỗi chủ đề có thể khóa và ghi vào tệp và sau đó nhả nó cho chuỗi tiếp theo để ghi.
Nếu MinimalLock bị vô hiệu hóa, log4net báo cáo lỗi về tệp đang bị khóa bởi một quy trình (chuỗi) khác.
Cách tốt hơn để log4net thực hiện việc này là phải có một chuỗi duy nhất xử lý văn bản cho FileAppender và bất kỳ chủ đề nào khác chỉ cần thêm thông điệp của họ vào hàng đợi.
Bằng cách đó, MinimalLock có thể bị tắt để cải thiện đáng kể hiệu suất ghi nhật ký. Ngoài ra, ứng dụng thực hiện rất nhiều công việc chuyên sâu của CPU để nó cũng sẽ cải thiện hiệu suất sử dụng một luồng riêng biệt để ghi vào tệp để CPU không bao giờ đợi I/O hoàn tất.
Vì vậy, câu hỏi là, liệu log4net đã cung cấp tính năng này chưa? Nếu vậy, làm thế nào để bạn kích hoạt tính năng viết luồng cho một tập tin? Có một appender cao cấp hơn, có lẽ?
Nếu không, thì vì log4net đã được gói trong nền tảng, nên có thể thực hiện một chuỗi và hàng đợi riêng biệt cho mục đích này trong mã TickZoom.
Trân trọng, Wayne
EDIT:
Nhờ có vẻ như câu trả lời chỉ để phát triển giải pháp của riêng của chúng tôi như có lẽ một phần mở rộng để log4net một cách nào đó. Và họ cho thấy rõ ràng log4net không làm điều này.
Hơn nữa, chúng tôi mới nhận ra rằng chúng tôi có thể "lạm dụng" hệ thống ghi nhật ký chủ yếu dành cho thông điệp có thể đọc được của con người để thông báo sự kiện quan trọng hoặc thông tin gỡ lỗi. Phần đặc biệt này của đầu ra phần mềm chỉ thực sự được sử dụng cho các công cụ tự động xác minh tính chính xác của hệ thống.
Tất nhiên, chúng tôi cũng sử dụng log4net theo cách "bình thường" để gỡ lỗi, cảnh báo và như vậy.
Nhưng chúng giống như "nhật ký giao dịch" hơn là nhật ký thông báo hoặc nhật ký người dùng. Cụ thể hơn, không cần thiết cho các nhật ký này trực tiếp có thể đọc được. Nếu cần thiết một "người xem" của một số loại có thể hiển thị các nội dung dưới dạng ASCII.
Vì vậy, chúng tôi sẽ lập kế hoạch thực hiện các nhật ký loại giao dịch này được ghi vào bộ nhớ nhị phân tốc độ cao.
Cảm ơn dường như cả hai câu trả lời dưới đây đều là những cú hích lớn để phát triển giải pháp của riêng chúng tôi.
Cảm ơn bạn đã làm rõ rằng không thể thực hiện được trong log4net và cho phép di chuyển về phía giải pháp nội bộ. – Wayne