大規模で古いアプリケーションをサポートしています。Debug.WriteLine
このコードでは、とだけでなく NLog も使用していますTrace.WriteLine
。Debug.WriteLine と Trace.WriteLine を Nlog ファイルにリダイレクトしようとしています。すべてが1か所にあるように。現時点では、出力ウィンドウにあるものとログ ファイルにあるものがあります。
この記事に従って、NLogTraceListener を使用しました
その記事では、System.Net と System.Net.Sockets がログ ファイルにシャントされています。私はそれを試してみましたが、うまくいきます。System.Net および System.Net.Sockets メッセージがファイルに記録されています。 This SO articleは同じことを説明しています-そしてそれは機能します。
うまくいかないのは、自分の名前空間とクラスから自分のメッセージをログ ファイルに記録することです。
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");
アプリからソース名を名前空間に変更しようとしました。うまくいきませんでした。ファイルにログを記録するための独自の WriteLines を取得できません。Visual Studio の出力ウィンドウには引き続き表示されます。
例えば:
<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>
明示的な NLog 呼び出しは、ログ ファイルに問題なく記録されます。
NLog.LogManager.GetCurrentClassLogger().Trace("This Works");