Ich möchte in der Lage sein, eine EventSource zu deklarieren, die ein Minimum von mehreren Methoden hat, die standardmäßig regelmäßige Protokollierungsfunktionen bereitstellen.Kann eine EventSource in ETW abgeleitet werden?
z.B.
- Info()
- Warn()
- Fehler()
Außerdem würde Ich mag zu können, in jedem Dienst, eine bestimmte Ereignisquelle definieren, die von der erbt Basisklasse, die das oben genannte bereitstellt. Im Moment beschwert sich die EventRegister.exe App, die das Manifest erstellt, dass die Ereignisquelle versiegelt werden muss.
Mache ich das falsch? Wenn ja, wie kann ich das oben genannte erreichen? Siehe Beispielcode:
public class ETWBase : EventSource
{
[Event(1, Channel = EventChannel.Admin, Message = "Info Message: {0}")]
public void Info(string message) { this.WriteEvent(1); }
[Event(2, Channel = EventChannel.Debug, Message = "Debug Message: {0}")]
public void Trace(string message) { this.WriteEvent(2); }
}
[EventSource(Name = "ABC-MyEtwServiceEventSource")]
public sealed class MyEtwServiceEventSource : ETWBase
{
public static MyEtwServiceEventSource Log = new MyEtwServiceEventSource();
[Event(3, Channel = EventChannel.Debug, Message = "My specific Message: {0}")]
public void Trace(string message) { this.WriteEvent(3); }
}
ich die neueste und beste Microsoft.Diagnostics.Tracing mit (vor), die ich für die Kanäle im Gegensatz zu den SLAB von Enterprise Library hat die Unterstützung verstehen.
Microsoft.Diagnostics.Tracing (vor) erwartet, dass die Klasse versiegelt wird. Die Klasse, die EventSource erbt, muss versiegelt werden. Sie können Manifest nicht generieren, wenn Sie es nicht als versiegelt markieren. Ich bezweifle, dass das funktioniert. – KRP
Wie teile ich gemeinsame Methoden über mehrere EventSources hinweg in einem breiten System? – jaffa
Ich bin da nicht wirklich sicher, ich denke wir können das nicht machen. – KRP