Для изменения размера нажмите или перетащите
Логирование

Для мониторинга работы торговых роботов, написанных на S#, можно использовать специальный класс LogManager. Данный класс принимает сообщения LogMessage от источников LogManagerSources через событие ILogSourceLog и передает их в слушатели LogManagerListeners. Таким образом код робота сможет передавать отладочную информацию (например, об ошибках, случившихся в процессе работы, или дополнительную информацию о математических расчетах), а LogManager будет решать, как отобразить для оператора данную информацию.

Стандартно в S# входят следующие реализации ILogListener, выбор которых влияет на то, куда будут переданы поступившие от стратегии сообщения:

  1. FileLogListener - записывает сообщения в текстовый файл. Рекомендуется использовать для уже сделаного робота, и использовать логи в форс-мажорных ситуациях.
  2. SoundLogListener - проигрывает звуковое сообщение когда приходит новое сообщение. Рекомендуется использовать, если за роботом нет постоянного внимания.
  3. ConsoleLogListener - записывает сообщения в консольное окно (если робот не имеет такое окно, то оно будет автоматически создано). Рекомендуется использовать для отладки и тестирования робота.
  4. DebugLogListener - записывает сообщения в отладочное окно. Такое окно можно просматривать через специальные программы, такие как DebugView. Рекомендуется использовать для отладки и тестирования робота.
  5. EmailLogListener - отсылает сообщения на указанный email адрес. Рекомендуется использовать, если робот расположен на непостоянно контролируемом компьютере (на сервере у хостера).
  6. GuiLogListener - отображает сообщения через специальное окно LogWindow. Умеет работать в двух режимах: когда все сообщения пишутся в одно окно, и когда для каждого ILogSource создается отдельное окно. Рекомендуется использовать, если робот обладает графическим интерфейсом.
  7. Log4NetLogListener - записывает сообщения через специальную библиотеку Log4Net. Рекомендуется для тех, кто уже знаком с данной библиотекой.

LogListener можно настроить на фильтрацию сообщений через свойство Filters. Например, через фильтры можно задать, какой тип сообщений стоит обрабатывать. Это особенно полезно в случаях использования SoundLogListener или EmailLogListener, чтобы, к примеру, посылать e-mail только в критических ситуациях (ошибка алгоритма торговли), а не на каждое отладочное сообщение.

Следующие шаги