Tôi đã xem nhật ký các dịch vụ WCF (bao gồm các công nghệ như NLog và PostSharp), nhưng tôi có một số thứ chưa được giải quyết ... Tôi không biết mình có bị mất hay không một cái gì đó hiển nhiên hoặc nó chỉ là không thể.Dịch vụ WCF, đăng nhập theo chiều dọc
Giả sử tôi có tầng dịch vụ WCF với hơn 100 điểm nhập cuộc gọi dịch vụ web. Một trong số đó đang gây ra sự cố. Bên dưới tầng đó là tầng logic kinh doanh và tầng cơ sở dữ liệu. Những gì tôi muốn làm (tôi nghĩ) là bật tính năng ghi nhật ký cho cuộc gọi dịch vụ đó (bao gồm ID hoạt động cho tương quan), để mọi cuộc gọi đến dịch vụ đó được ghi lại và mọi thông điệp tường trình trong các tầng thấp hơn cũng được ghi lại. Tôi thực sự không muốn bật tính năng ghi nhật ký ở cấp độ lắp ráp cho các tầng thấp hơn bởi vì chúng sẽ được chia sẻ bởi nhiều phương pháp dịch vụ web.
Điều này thậm chí có thể, thông qua một khung hiện có hoặc bằng cách sử dụng một cái gì đó như CorrelationManager một cách sáng tạo?
Cảm ơn! Đó chính là loại điều tôi đang tìm kiếm. Lý tưởng nhất là tôi muốn sử dụng NLog trên log4net vì nó có vẻ hoạt động hơn một chút, nhưng đây chính xác là loại điều khiến tôi thay đổi ý định ... Bạn đã sử dụng mã như thế này trong giận dữ chưa? Làm thế nào nó sẽ đối phó với một dịch vụ đa luồng? –
log4net.ThreadContext sử dụng lưu trữ cục bộ luồng. Miễn là một cuộc gọi dịch vụ không hop chủ đề (đọc sử dụng asych), điều này hoạt động tuyệt vời trong một môi trường đa luồng. Có, tôi đã thực hiện một số trong số này để sản xuất thực tế Dịch vụ doanh nghiệp. Cuối cùng là đặt một tương quan Id trong tất cả các ent đăng nhập (bất cứ điều gì đẩy trên ThreadContext có thể được bao gồm trong mô hình chuyển đổi của appender.) Log4net không phải là rất tích cực vì có rất ít mất tích và mở rộng nó là rất tốt tài liệu. Nếu bạn có thể dạ dày mà nó được viết trước khi generics, nó đối xử với bạn tốt. – ErnieL
Cảm ơn Ernie. Đó là chính xác loại điều tôi đang tìm kiếm! –