2015-02-24 9 views
5

Tôi đã tự hỏi thực hành tốt nhất cho việc sử dụng log4net trong Microsoft Orleans là gì? Nó sẽ được khởi tạo ở đâu?Log4Net và Orleans

+0

"Microsoft không khuyến khích sử dụng các lớp tĩnh ở Orleans Grains" - bạn có tham khảo về điều đó không? – stuartd

Trả lời

8

Tôi nghĩ nơi tốt nhất để khởi tạo cho mỗi biến tĩnh silo là ở Silo Bootstrap.

Lưu ý rằng Orleans có bộ ghi nhật ký được định cấu hình và bạn có thể lấy nó bằng hạt bằng cách gọi this.GetLogger().

< chỉnh sửa > Người ta có thể xác định một logger kế thừa từ ILogConsumer và thêm nó thu bồn log bằng cách gọi Orleans.Runtime.TraceLogger.LogConsumers.Add(). </chỉnh sửa>

< chỉnh sửa 2015/07/16 >: này xuất hiện trong Orleans Gitter channel một lần nữa, nơi following advice đã được cung cấp từ các thành viên trong nhóm nòng cốt:

chúng tôi công bố để NET Trace và bạn có thể quảng cáo người nghe mới với nó. thực sự là cách tốt nhất để làm điều đó, ngay cả khi không chạm vào Orleans.Runtime.TraceLogger.LogConsumers. chỉ hoạt động với .NET TRace, với các công cụ và cấu hình thông thường. không liên quan đến Orleans. chúng tôi chỉ xuất bản vào Trace.

Một điểm đáng chú ý thêm ở đây khác Stackoverflow bài Logging best practices, trong đó Sly Gryphon đi qua cơ sở hạ tầng dấu vết khá thấu đáo.

1

Trong hầu hết các mẫu Orleans, có sử dụng lớp tĩnh làm nhà máy để tạo đối tượng. Log4net sử dụng cấu trúc tương tự để tạo các lớp ILog. Không có lý do để sử dụng, hoặc làm điều này theo một cách khác so với cách khuyến cáo tiêu chuẩn.