Protokollierung
S# bietet mehrere grafische Komponenten zur Anzeige von Logs: LogControl und Monitor.
Bei der Verwendung visueller Logging-Komponenten müssen Sie den Logger GuiLogListener als "Listener" verwenden. Dieser Logger stellt beim Aufzeichnen neuer LogMessage-Meldungen eine Streaming-Synchronisierung mit der GUI bereit.
Um Logging in Ihrer eigenen Klasse zu implementieren, müssen Sie die Schnittstelle ILogReceiver implementieren. Einfacher ist es, von der Klasse BaseLogReceiver zu erben, wie im Beispiel Samples/08_Misc/01_Logging gezeigt:
private class TestSource : BaseLogReceiver
{
}
private readonly LogManager _logManager = new LogManager();
private readonly TestSource _testSource = new TestSource();
public MainWindow()
{
InitializeComponent();
// Sofortiges Flushen
_logManager.FlushInterval = TimeSpan.FromMilliseconds(1);
// Test-Logquelle setzen
_logManager.Sources.Add(_testSource);
// .NET-Trace-System als Quelle setzen
_logManager.Sources.Add(new Ecng.Logging.TraceSource());
// Logs in MainWindow schreiben
_logManager.Listeners.Add(new GuiLogListener(Monitor));
// und in die Datei logs.txt
_logManager.Listeners.Add(new FileLogListener
{
FileName = "logs",
});
}