2013-11-08 3 views
0

Я пытаюсь включить трассировку мыла в моей dll. Мой файл app.conifig включает в себя:Как отслеживать отслеживание мыла во время выполнения в 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"/> 
     </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 не читает app.config. Как включить трассировку из кода или настроить его из внешнего файла конфигурации?

+0

Как вы запустите «.dll»? –

ответ

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> 
+0

Ваш ответ означает, что трассировка должна быть написана не только для файла, но и для консоли. Но в моем вопросе возникает другая ситуация: я запускаю dll с консоли, и я хочу видеть свою трассировку в файле. – Balconsky

+0

@Balconsky Да, прямо добавьте консоль слушателя .. –

+0

Я пробовал, это не помогло – Balconsky

Смежные вопросы