Điều này đòi hỏi một khuôn khổ của bên thứ ba, cụ thể là Serilog , nhưng dù sao tôi đã tìm thấy nó là một rất trải nghiệm suôn sẻ với việc đưa đầu ra đến một nơi nào đó mà tôi có thể thấy nó.
Trước tiên, bạn cần cài đặt bồn rửa Trace của Serilog . Sau khi cài đặt, bạn cần thiết lập bộ ghi như thế này:
Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Trace()
.CreateLogger();
(Bạn có thể đặt mức tối thiểu khác hoặc đặt thành giá trị cấu hình hoặc bất kỳ chức năng Serilog thông thường nào. Bạn cũng có thể đặt Trace
ghi nhật ký ở mức cụ thể để ghi đè cấu hình hoặc tuy nhiên bạn muốn làm điều này.)
Sau đó, bạn chỉ cần đăng nhập tin nhắn bình thường và chúng hiển thị trong cửa sổ đầu ra của bạn:
Logger.Information("Did stuff!");
Điều này dường như không phải là một vấn đề lớn, vì vậy hãy để tôi giải thích một số lợi thế bổ sung. Cái lớn nhất đối với tôi là tôi có thể đăng nhập đồng thời vào cả cửa sổ đầu ra và bàn điều khiển :
Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Trace()
.WriteTo.Console(standardErrorFromLevel: LogEventLevel.Error)
.CreateLogger();
Điều này mang lại cho tôi sự linh hoạt tuyệt vời về cách tôi tiêu thụ đầu ra, mà không phải lặp lại tất cả các cuộc gọi của tôi Console.Write
với Debug.Write
. Khi viết mã, tôi có thể chạy công cụ dòng lệnh của mình trong Visual Studio mà không sợ mất đầu ra khi thoát. Khi tôi đã triển khai nó và cần gỡ lỗi một cái gì đó (và không có sẵn Visual Studio), đầu ra giao diện điều khiển đã có sẵn cho tiêu dùng của tôi. Các tin nhắn tương tự cũng có thể được ghi vào một tệp (hoặc bất kỳ loại chìm nào khác) khi nó chạy như một tác vụ theo lịch trình.
Điểm mấu chốt là việc sử dụng Serilog để thực hiện việc này giúp việc chuyển các tin nhắn đến vô số đích đến thật dễ dàng, đảm bảo tôi luôn có thể dễ dàng truy cập đầu ra bất kể tôi chạy nó như thế nào.
Nó cũng đòi hỏi thiết lập và mã rất tối thiểu.
Debug.WriteLine()