Логирование 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);
- Вот как выглядит окно логов при работе стратегии: 