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.");
}
}
}
参考
コメント
コメントを投稿