Click or drag to resize

Logging

For the monitoring of trading algorithms written in S#, you can use the special LogManager class. This class receives the LogMessage messages from the LogManagerSources through the ILogSourceLog event and passes them to the LogManagerListeners listeners. Therefore, the algorithm code will be able to pass debug information (for example, about errors occurred during the operation, or additional information about mathematical calculations) and LogManager will decide how to display this information for the operator.

Normally the S# contains the following implementations of the ILogListener, whose choice affects where messages received from strategies will be passed:

  1. FileLogListener - writes messages into a text file. It is recommended to use for already created algorithm, and to use the logs in cases of force majeure.
  2. SoundLogListener - plays the audio message when a new message arrives. It is recommended to use if the algorithm is not under continuous monitoring.
  3. ConsoleLogListener - outputs messages to the console window (if the algorithm does not have a window, it will be automatically created). It is recommended to use for debugging and testing the algorithm
  4. DebugLogListener - outputs messages to the debug window. This window can be viewed through special programs such as DebugView. It is recommended to use for debugging and testing the algorithm.
  5. EmailLogListener - sends messages to the specified email address. It is recommended to use if the algorithm is located at not controlled computer (at hoster’s server).
  6. GuiLogListener - displays messages through the special LogWindow window. Able to work in two modes: when all messages output in a single window, and when a separate window is created for each ILogSource. It is recommended to use if the algorithm has a graphical interface.
  7. Log4NetLogListener - records messages through the special Log4Net library. It recommended for those who are already familiar with this library.

LogListener can be configured to filter messages through the Filters property. For example, through the filters you can specify what type of messages should be processed. This is particularly useful when the SoundLogListener or the EmailLogListener is used, in order that, for example, to send e-mail in emergency situations only (trade algorithm error) rather than on each debug message.

Next Steps