Obsługuję dużą, starą aplikację. Kod używa NLog oraz Debug.WriteLine
i Trace.WriteLine
. Próbuję przekierować linie Debug.WriteLine i Trace.WriteLine do pliku Nlog. Tak, aby wszystko było w jednym miejscu. W tej chwili niektóre znajdują się w oknie Output, a niektóre w pliku dziennika.Jak rejestrować komunikaty System.Diagnostics.Trace i System.Diagnostics.Debug do pliku NLog?
I followed this article to use the NLogTraceListener
Artykuł ten ma System.Net i System.Net.Sockets coraz przerzucane do pliku dziennika. Próbowałem i działa. Widzę, jak komunikaty System.Net i System.Net.Sockets są rejestrowane w pliku. This SO article opisuje to samo - i działa.
Co nie działa, to logowanie własnych wiadomości z moich własnych przestrzeni nazw i klas do pliku dziennika.
System.Diagnostics.Debug.WriteLine("This won't end up in the log file");
System.Diagnostics.Trace.WriteLine("This won't end up in the log file");
Próbowałem zmienić nazwy źródeł na obszary nazw z mojej aplikacji. Nie działa. Nie mogę uzyskać własnych WriteLines do zalogowania się do pliku. Nadal pojawiają się w oknie wyjściowym Visual Studio.
Na przykład:
<system.diagnostics>
<sources>
<source name="MyAppNamespace" switchValue="All">
<listeners>
<add name="nlog" />
</listeners>
</source>
</sources>
<sharedListeners>
<add name="nlog" type="NLog.NLogTraceListener, NLog" />
</sharedListeners>
</system.diagnostics>
Wyraźna NLog połączenia są zalogowaniu do pliku dziennika tylko dobrze:
NLog.LogManager.GetCurrentClassLogger().Trace("This Works");