Для изменения размера нажмите или перетащите

Логирование

Для мониторинга работы торговых роботов, написанных на 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 создается отдельное окно. Рекомендуется использовать, если робот обладает графическим интерфейсом.

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

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