0

dll で SOAP トレースを有効にしようとしています。私の app.config ファイルには以下が含まれます。

<system.diagnostics>
    <trace autoflush="true"/>
    <sources>
      <source name="System.Net" maxdatasize="10240">
        <listeners>
          <add name="TraceFile"/>
        </listeners>
      </source>
      <source name="System.Net.Sockets" maxdatasize="10240">
        <listeners>
          <add name="TraceFile"/>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add name="TraceFile" type="System.Diagnostics.TextWriterTraceListener"
        initializeData="trace.log"/>
    </sharedListeners>
    <switches>
      <add name="System.Net" value="Verbose"/>
      <add name="System.Net.Sockets" value="Verbose"/>
    </switches>
  </system.diagnostics>

VisualStudio で dll を実行するとトレースは正常に動作しますが、コンソールから dll を実行すると動作しません。dll が app.config を読み取っていないようです。コードからのトレースをオンにしたり、外部構成ファイルからチューニングしたりするにはどうすればよいですか?

4

1 に答える 1

1

dll で動作するように構成しました。以下のようにコンソールリスナーを追加することで、コンソール用に変更できます。

<system.diagnostics>
    <trace autoflush="true"/>
    <sources>
      <source name="System.Net" maxdatasize="10240">
        <listeners>
          <add name="TraceFile"/>
        </listeners>
      </source>
      <source name="System.Net.Sockets" maxdatasize="10240">
        <listeners>
          <add name="TraceFile"/>
          <add name="consoleListener" type="System.Diagnostics.ConsoleTraceListener"/>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add name="TraceFile" type="System.Diagnostics.TextWriterTraceListener"
        initializeData="trace.log"/>
    </sharedListeners>
    <switches>
      <add name="System.Net" value="Verbose"/>
      <add name="System.Net.Sockets" value="Verbose"/>
    </switches>
  </system.diagnostics>

consolelistener私が追加したことに注意してください。これにより、コードがコンソールにトレースを書き込むことができるようになります。

私のために働いたサンプル構成は次のとおりです。

<configuration>
    <system.diagnostics>
        <trace autoflush="true">
            <listeners>
                <add name="logListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="cat.log" />
                <add name="consoleListener" type="System.Diagnostics.ConsoleTraceListener"/>
            </listeners>
        </trace>
    </system.diagnostics>
</configuration>
于 2013-11-08T11:48:57.623 に答える