私はTraceSourceを初めて使用するので、どのように使用できる/できないか(基本的に長所と短所)を調査しています。
私が気に入っているのは、.NET フレームワーク自体からダンプを取得できることです。そのため、それをテストするための小さなアプリを作成し、独自のカスタム ソースを一緒に使用しました (これが使用されると予想される方法です)。そのようです:
class Program
{
static void Main(string[] args)
{
SmtpClient smtp = new SmtpClient();
var mm = new MailMessage();
mm.To.Add("me@my-site.com");
mm.Subject = "Trace Testing";
smtp.Send(mm);
var ts = new TraceSource("MyCustomTracer");
ts.TraceEvent(TraceEventType.Error, 0, "This is an error");
ts.TraceEvent(TraceEventType.Information, 0, "Just debugging now");
}
}
次に、いくつかのリスナーを次のApp.config
ように追加しました。
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="MyCustomTracer"
switchValue="Information, ActivityTracing">
<listeners>
<add name="sdt"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "traceOutput.log" />
</listeners>
</source>
<source name="System.Net"
switchValue="Information, ActivityTracing, Critical">
<listeners>
<add name="sdt"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "traceOutput.log" />
</listeners>
</source>
</sources>
</system.diagnostics>
しかし、何らかの理由でアプリを実行すると、ログに記録している 2 つのイベントMyCustomTracer
がログ ファイルに記録されませんSmtpClient
。
複数の TraceSource を使用しようとしている方法で使用できると予想していましたが、何が問題なのかわかりません。