2011-02-02 1 views
0

Вот мой кодКак настроить фильтрации сообщений через коммутаторы

public static TraceSource TS = new TraceSource("myTraceSrc", SourceLevels.All); 
    static void Main(string[] args) 
    { 

     TS.TraceInformation("Hello Information Trace from Main"); 
     TS.TraceEvent(System.Diagnostics.TraceEventType.Error, 1, "Hello Error Trace from Main"); 

}

здесь конфигурационный файл

<system.diagnostics> 
    <trace autoflush="true" /> 
    <sources> 
     <source name="myTraceSrc" switchName="switch1" > 
      <listeners> 
       <add type="System.Diagnostics.TextWriterTraceListener" name="myLocalListener" initializeData="c:\WasteBin\Test.Log" /> 
       <add name="consoleListener" /> 
      </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add type="System.Diagnostics.ConsoleTraceListener" name="consoleListener" traceOutputOptions="None" /> 
     <add type="System.Diagnostics.EventTypeFilter" name="EventListener" traceOutputOptions="None" /> 
    </sharedListeners> 
    <switches> 
     <add name="switch1" value="all" /> 
    </switches> 
</system.diagnostics> 

Я хочу, чтобы все мои сообщения, чтобы перейти к консоли и текстовый файл, но только ошибка должна идти в журнал событий. Как настроить его с помощью настроек конфигурации?

ответ

-7

Попробуйте использовать библиотеки журналов (Nlog, log4net) для своих задач. Они имеют фильтрацию сообщений и маршрутизацию.

+0

Я уже рассматриваю один для использования, но вы говорите, что это невозможно для этого через TraceSource? – imak

+1

Вы можете фильтровать TraceSource по категориям или EventType в слушателях. Проверьте эту ссылку [Использовать TraceSource и фильтры с помощью Trace Listeners] (http://msdn.microsoft.com/en-us/library/ms228993.aspx) –

+1

-1, не отвечает на вопрос вообще - OP хочет знать, как настроить его слушателей TraceSource, а не какие альтернативные системы ведения журналов. –