Логирование Strategy
Класс Strategy реализует интерфейс ILogSource. Поэтому стратегии можно передавать в LogManager.Sources, и все ее сообщения будут автоматически попадать в LogManager.Listeners.
Предварительные условия
Логирование в тестовый файл
В самом начале необходимо создать менеджер логирования:
var logManager = new LogManager();
Затем необходимо создать файловый логгер, передав в него имя файла, и добавить его в LogManager.Listeners:
var fileListener = new FileLogListener("{0}_{1:00}_{2:00}.txt".Put(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day)); logManager.Listeners.Add(fileListener);
Для логирования сообщений необходимо добавить стратегию в LogManager.Sources:
logManager.Sources.Add(lkohSmaStrategy);
После добавления стратегии в менеджер логирования все ее сообщения будут записаться в файл.
Проигрывание звука
Создание логгера и передача в него имени звукового файла:
var soundListener = new SoundLogListener("error.mp3"); logManager.Listeners.Add(soundListener); logManager.Sources.Add(lkohSmaStrategy);
Установка фильтра на проигрывание звука только при сообщениях типа LogLevels.Error:
soundListener.Filters.Add(msg => msg.Level == LogLevels.Error);
Отсылка Email
Создание логгера и передача в него параметров отсылаемых писем:
var emailListener = new EmailLogListener("from@stocksharp.com", "to@stocksharp.com"); logManager.Listeners.Add(emailListener); logManager.Sources.Add(lkohSmaStrategy);
Установка фильтра на отсылку сообщений типов LogLevels.Error и LogLevels.Warning:
emailListener.Filters.Add(msg => msg.Level == LogLevels.Error); emailListener.Filters.Add(msg => msg.Level == LogLevels.Warning);
Логирование в LogWindow
Создание логгер GuiLogListener:
// каждая стратегия будет иметь свое собственное окно var guiListener = new GuiLogListener(); logManager.Listeners.Add(guiListener); logManager.Sources.Add(lkohSmaStrategy);
Вот как выглядит окно логов при работе стратегии: