14

アプリケーション全体に C# トレース メッセージがあるとします。何かのようなもの:

Trace.TraceInformation("Service Started"); 

トレース メッセージを持つすべてのクラスに次のようなコードを追加せずに、これを nLog ターゲットに自動的に記録するにはどうすればよいでしょうか?

using NLog;
private static Logger logger = LogManager.GetCurrentClassLogger();

この記事で説明する .NET Framework 自体によって生成されたトレースを含めずにこれを行う方法はありますか?

4

3 に答える 3

9

これは、明示的なソースがない場合に有効です。

  <system.diagnostics>
      <trace autoflush="true" indentsize="4">
        <listeners>
          <add name="MyNLogTraceListener" type="NLog.NLogTraceListener, NLog" />
          <remove name="Default" />
        </listeners>
      </trace>
  </system.diagnostics>
于 2013-08-12T03:05:54.790 に答える
6

NLog のNLogTraceListenerを使用できます。

完全を期すために、NLogTraceListener を指定するための System.Diagnostics 構成 (上記のリンクから) を次に示します。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.diagnostics>
    <sources>
      <source name="System.Net" switchValue="All">
        <listeners>
          <add name="nlog" />
        </listeners>
      </source>
      <source name="System.Net.Sockets" switchValue="All">
        <listeners>
          <add name="nlog" />
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add name="nlog" type="NLog.NLogTraceListener, NLog" />
    </sharedListeners>
  </system.diagnostics>
</configuration>

また、System.Diagnostics.Trace から NLog に移動したときに情報を書き込む方法を伝えるために、NLog を構成する必要があります。

<nlog>
  <targets>
    <target name="console" type="ColoredConsole" layout="${longdate} ${windows-identity} ${message}" />
  </targets>

  <rules>
    <logger name="*" minlevel="Trace" writeTo="console" />
  </rules>
</nlog>
于 2012-11-07T15:46:08.657 に答える
0

で以下を使用できます。App.config

    <system.diagnostics>

    <sources>
      <source name="System" switchValue="All">
        <listeners>
          <add name="nlog" />
        </listeners>
      </source>
    </sources>

    <sharedListeners>
      <add name="nlog" type="NLog.NLogTraceListener, NLog" />
    </sharedListeners>

    <trace autoflush="true" indentsize="4">
      <listeners>
        <add name="nlog" />
        <remove name="Default" />
      </listeners>
    </trace>

  </system.diagnostics>
于 2019-04-13T23:12:33.797 に答える