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(); } } }