2010-05-14 30 views
5

Cách tốt nhất để thực hiện NLog trong ứng dụng Prism/CAL WPF của tôi là gì. Đây có thể là một câu hỏi nghiệp dư, tôi là một chút mới đối với toàn bộ khung Prism :)Thực hiện đúng NLog và lăng kính

Tôi nghĩ về việc đặt tham chiếu đến dll NLog trong mô-đun cơ sở hạ tầng và tạo một lớp đơn bao bọc, ví dụ: MyLogger. Suy nghĩ của tôi là có thể có tham chiếu đến việc thực hiện 1 logger ở đâu đó ở một nơi trung tâm mà mọi thứ liên quan đến, và điều duy nhất tôi biết trong Prism sẽ là mô-đun cơ sở hạ tầng của bạn.

Cách khác rõ ràng là thêm tham chiếu vào NLog vào từng mô-đun nhưng tôi nghĩ rằng sẽ đánh bại mục đích tách và tất cả điều đó.

Bất kỳ ý tưởng sẽ là hữu ích nhất

Trân

Trả lời

4

Tôi muốn giới thiệu một cái gì đó tương tự như ý tưởng đầu tiên của bạn, mặc dù nó thúc đẩy một giao diện đã tồn tại trong Prism.

Mặc dù tôi không chắc chắn chữ ký phương thức chính xác có sẵn cho bạn trong NLog, bạn có thể cân nhắc sử dụng giao diện ILoggerFacade của Prism, thường được định nghĩa trong Bootstrapper của bạn (xem ứng dụng StockTraderRI để biết ví dụ về cách thiết lập này lên). Thông thường, điều này hoạt động như một thông qua để Microsoft's Composite Logging interface, nhưng không có lý do tại sao bạn không thể sử dụng điều này để móc vào logger của riêng bạn.

Một vài lý do để xem xét cách tiếp cận này:

  1. Nó sử dụng giao diện ILoggerFacade đã tồn tại trong khuôn khổ Prism, mà các nhà phát triển khác sẽ được làm quen với
  2. Nếu sau đó bạn quyết định đi đến một khai thác gỗ khác nhau khuôn khổ, bạn chỉ cần thay thế đối tượng đằng sau việc triển khai ILoggerFacade

Cách tiếp cận khác sẽ làm như bạn đề xuất: tạo giao diện xác định dịch vụ cho NLog (hoặc hiển thị giao diện NLog hiện có ace) trong cơ sở hạ tầng DLL của bạn và đăng ký việc thực hiện dịch vụ đó trong bootstrapper của bạn. Sau đó, bạn có thể bạn chứa container phụ thuộc của bạn để có được một tham chiếu đến dịch vụ logger trong các mô-đun của bạn. Lưu ý, tuy nhiên, điều này thực sự chỉ tái tạo những gì giao diện ILoggerFacade đã cung cấp cho bạn.

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