Strategie-Logging
Die Klasse Strategy implementiert das Interface ILogSource. Daher können Strategien an LogManager.Sources übergeben werden, und alle ihre Nachrichten gelangen automatisch zu LogManager.Listeners.
Voraussetzungen
Logging in eine Testdatei
Zuerst müssen Sie den speziellen Manager erstellen:
var logManager = new LogManager();Danach müssen Sie einen Datei-Logger erstellen, ihm den Dateinamen übergeben und ihn zu LogManager.Listeners hinzufügen:
var fileListener = new FileLogListener("{0}_{1:00}_{2:00}.txt".Put(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day)); logManager.Listeners.Add(fileListener);Zum Loggen von Nachrichten müssen Sie die Strategie zu LogManager.Sources hinzufügen:
logManager.Sources.Add(lkohSmaStrategy);Nach dem Hinzufügen der Strategie zum Logging-Manager werden alle ihre Nachrichten in die Datei geschrieben.
Soundwiedergabe
Erstellen eines Loggers und Übergabe des Namens der Sounddatei:
var soundListener = new SoundLogListener("error.mp3"); logManager.Listeners.Add(soundListener); logManager.Sources.Add(lkohSmaStrategy);Filter so setzen, dass der Sound nur abgespielt wird, wenn der Nachrichtentyp LogLevels.Error ist:
soundListener.Filters.Add(msg => msg.Level == LogLevels.Error);
E-Mail-Versand
Erstellen Sie den Logger und übergeben Sie ihm die Parameter für die versendeten Nachrichten:
var emailListener = new EmailLogListener("from@stocksharp.com", "to@stocksharp.com"); logManager.Listeners.Add(emailListener); logManager.Sources.Add(lkohSmaStrategy);Setzen des Filters für das Senden von Nachrichten der Typen LogLevels.Error und LogLevels.Warning:
emailListener.Filters.Add(msg => msg.Level == LogLevels.Error); emailListener.Filters.Add(msg => msg.Level == LogLevels.Warning);
Logging in das LogWindow
Erstellen des GuiLogListener-Loggers:
// Jede Strategie erhält ihr eigenes Fenster var guiListener = new GuiLogListener(); logManager.Listeners.Add(guiListener); logManager.Sources.Add(lkohSmaStrategy);So sieht das Logfenster während der Arbeit der Strategie aus:
