TraceSourceの設定

TraceSourceを使う際のconfigの内容をメモしておきます。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.diagnostics>
      <sources>
        <source name="MainTraceSource" switchName="sourceSwitch" switchType="System.Diagnostics.SourceSwitch">
          <listeners>
            <!--<add name="EventLog" />-->
            <!--<add name="TextLog" />-->
            <!--<add name="Delimited" />-->
            <!--<add name="XmlWriter" />-->
            <!--<add name="Console" />-->
          </listeners>
        </source>
      </sources>
      <switches>
        <add name="sourceSwitch" value="Warning"/>
      </switches>
      <sharedListeners>
        <add name="EventLog"
          type="System.Diagnostics.EventLogTraceListener"
          initializeData="Test Application" />
        <add name="TextLog"
          type="System.Diagnostics.TextWriterTraceListener"
          initializeData="TextLog.txt" />
        <add name="Delimited" 
          type="System.Diagnostics.DelimitedListTraceListener"
          initializeData="DelimitedLog.txt" delimiter=","
          traceOutputOptions="DateTime" />
        <add name="XmlWriter"
          type="System.Diagnostics.XmlWriterTraceListener"
          initializeData="Log.xml" />
        <add name="Console"
          type="System.Diagnostics.ConsoleTraceListener"
          initializeData="true" />
      </sharedListeners>
    </system.diagnostics>
</configuration>

実際は上記のsourceタグのコメントをいずれか外して使います。
サンプルソースはこんな感じです。

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

namespace TraceTest
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                TraceSource trace   =   new TraceSource("MainTraceSource");
                trace.TraceEvent(TraceEventType.Warning, 0, "警告");
                trace.TraceEvent(TraceEventType.Information, 1, "情報");
                trace.TraceEvent(TraceEventType.Critical, 2, "危機");
                trace.Flush();
            }
            catch (Exception ex)
            {
                Console.WriteLine("{0}\r\n{1}", ex.Message, ex.StackTrace);
            }
            Console.Read();
        }
    }
}