Логирование
S# предлагает несколько графических компонент для отображения логов: LogControl и Monitor.
При использовании визуальных компонентов логирования в качестве "слушателя" необходимо использовать логгер GuiLogListener. Этот логгер обеспечивает потоковую синхронизацию с GUI при записи новых сообщений LogMessage.
Чтобы в собственном классе реализовать возможность логирования необходимо реализовать интерфейс ILogReceiver. Более простой способ это унаследоваться от класса BaseLogReceiver, как это сделать продемонстрировано в примере Samples\Misc\SampleLoggingGitHub:
private class TestSource : BaseLogReceiver
{
}
private readonly LogManager _logManager = new LogManager();
private readonly TestSource _testSource = new TestSource();
public MainWindow()
{
InitializeComponent();
// immediate flush
_logManager.FlushInterval = TimeSpan.FromMilliseconds(1);
// set test log source
_logManager.Sources.Add(_testSource);
// set .NET Trace system based source
_logManager.Sources.Add(new StockSharp.Logging.TraceSource());
// write logs into MainWindow
_logManager.Listeners.Add(new GuiLogListener(MonitorW));
// and file logs.txt
_logManager.Listeners.Add(new FileLogListener
{
FileName = "logs",
});
}