Wymaga to frameworku strony trzeciej, a mianowicie Serilog , ale mimo to uważam, że jest to bardzo płynne doświadczenie z dostarczaniem wyników do miejsca, w którym mogę je zobaczyć.
Najpierw musisz zainstalować zlew Serilog's Trace . Po zainstalowaniu musisz skonfigurować rejestrator w następujący sposób:
Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Trace()
.CreateLogger();
(Możesz ustawić inny minimalny poziom lub ustawić go na wartość konfiguracji lub dowolną z normalnych funkcji Serilog. Możesz także ustawić Trace
rejestrator na konkretny poziom, aby zastąpić konfiguracje, lub jakkolwiek chcesz to zrobić.)
Następnie po prostu logujesz wiadomości normalnie i pojawiają się one w oknie Output:
Logger.Information("Did stuff!");
To nie wydaje się takie duże, więc pozwól mi wyjaśnić kilka dodatkowych zalet. Największe dla mnie było to, że mogłem jednocześnie logować się zarówno do okna Output, jak i do konsoli :
Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Trace()
.WriteTo.Console(standardErrorFromLevel: LogEventLevel.Error)
.CreateLogger();
To dało mi wielką elastyczność w zakresie sposobu I spożywane wyjście, bez konieczności duplikowania wszystkie moje rozmowy do Console.Write
z Debug.Write
. Podczas pisania kodu mogłem uruchomić narzędzie wiersza polecenia w programie Visual Studio bez obawy utraty danych wyjściowych po ich wyjściu. Kiedy go wdrożyłem i musiałem coś debugować (i nie miałem programu Visual Studio), dane wyjściowe konsoli były łatwo dostępne do mojego użytku. Te same wiadomości mogą być również rejestrowane w pliku (lub dowolnym innym zlewie), gdy jest uruchomiony jako zaplanowane zadanie.
Najważniejsze jest to, że użycie Serilog do tego sprawiło, że bardzo łatwo było zrzucić wiadomości do wielu miejsc docelowych, dzięki czemu zawsze mogłem łatwo uzyskać dostęp do wyniku, niezależnie od tego, jak go uruchomiłem.
Wymaga również bardzo minimalnej konfiguracji i kodu.
Debug.WriteLine()