Я новичок в TraceSource, поэтому я изучаю, как его можно / нельзя использовать (в основном плюсы и минусы).
Что мне действительно нравится, так это то, что я могу получать дампы из самой .NET Framework, поэтому я создал небольшое приложение для его тестирования и совместного использования собственного пользовательского источника (как я и ожидал, используется), вот так:
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 могут использоваться так, как я пытаюсь их использовать, я просто не уверен, что происходит не так.