Dotnet FrameworkでSystem.Diagnostics.ConsoleTraceListenerを使う
Console Applicationを作成する。
App.configは以下の通り。
<configuration > <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> </startup> <system.diagnostics> <sources> <source name="TraceTest" switchName="sourceSwitch" switchType="System.Diagnostics.SourceSwitch"> <listeners> <add name="Console"/> <add name="myListener"/> <remove name="Default"/> </listeners> </source> </sources> <switches> <!--<add name="sourceSwitch" value="Warning"/>--> <!--<add name="sourceSwitch" value="Information"/>--> <add name="sourceSwitch" value="Verbose"/> </switches> <sharedListeners> <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="F:\temp\logs\Text.log"> <filter type="System.Diagnostics.EventTypeFilter" initializeData="Verbose"/> </add> <add name="Console" type="System.Diagnostics.ConsoleTraceListener" initializeData="true" /> </sharedListeners> </system.diagnostics> <configuration />
Program.csは、以下の通り。
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { private readonly static TraceSource mySource = new TraceSource("TraceTest", SourceLevels.All); static void Main(string[] args) { Trace.TraceInformation("=== Use Trace Console Message =="); Trace.Flush(); mySource.TraceEvent(TraceEventType.Information, 0, "== START TraceEvent =="); // Issue an error and a warning message. Only the error message // should be logged. Activity1(); // Issue a warning and a critical message. Both should be logged. Activity2(); // Restore the original filter settings. Activity3(); mySource.Close(); return; } static void Activity1() { mySource.TraceEvent(TraceEventType.Error, 1, "Error message."); mySource.TraceEvent(TraceEventType.Warning, 2, "Warning message."); mySource.TraceInformation("Information Message!!!!"); } static void Activity2() { mySource.TraceEvent(TraceEventType.Critical, 3,"Critical message."); mySource.TraceEvent(TraceEventType.Warning, 2,"Warning message."); } static void Activity3() { mySource.TraceEvent(TraceEventType.Error, 4,"Error message."); mySource.TraceInformation("Informational message."); } } }
参考
コメント
コメントを投稿