← Zurück

Время в логе

Подскажите кто знает, почему при логировании в лог не выводятся миллисекунды при подгрузке исторических сделок

простой пример, вывод при закрытии свечи


protected void OnCandleFinished(Candle candle) {
this.AddInfoLog("'Бар {0}'. OP={1}, MAH={2}, MAL={3}", candle.OpenTime, candle.OpenPrice, candle.High, candle.Low);
var interval = this.GetMarketTime().Subtract(candle.OpenTime);
// Если условие не выполняется значит только что закрылась свеча, а не подгружены исторические данные
if (interval.TotalMilliseconds >= 30000) {
Thread.Sleep(100); // Чтобы в лог выводилось в нужном порядке
return;
}

}

В логе выводится все равно без милисекунд:

..... 10:42:21.000 | | TS_RIZ2@RTS_SPBFUT | 'Бар 01.11.2012 10:28:00'. OP=142370, MAH=142406.995801, MAL=142329.316113 10:42:21.000 | | TS_RIZ2@RTS_SPBFUT | 'Бар 01.11.2012 10:29:00'. OP=142560, MAH=142568.998600, MAL=142349.772038 10:42:21.000 | | TS_RIZ2@RTS_SPBFUT | 'Бар 01.11.2012 10:30:00'. OP=142550, MAH=142622.999533, MAL=142469.924013 ....

В MonitorWindow записи с одинаковым временем из-за этого вообще перепутываются

War dieses Thema hilfreich?

Thema teilen

Kommentare (2)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Геннадий Ванин (Gennady Vanin)

PavelAd: Подскажите кто знает, почему при логировании в лог не выводятся миллисекунды при подгрузке исторических сделок

простой пример, вывод при закрытии свечи

protected void OnCandleFinished(Candle candle) { this.AddInfoLog("'Бар {0}'. OP={1}, MAH={2}, MAL={3}", candle.OpenTime, candle.OpenPrice, candle.High, candle.Low); var interval = this.GetMarketTime().Subtract(candle.OpenTime); // Если условие не выполняется значит только что закрылась свеча, а не подгружены исторические данные if (interval.TotalMilliseconds >= 30000) { Thread.Sleep(100); // Чтобы в лог выводилось в нужном порядке return; }

}

> 
> В логе выводится все равно без милисекунд:
A смысл?
GetMarketTime() возвращает DateTime, у которого accuracy не лучше  10-15 миллисекунд

Если будете сортировать с такой точностью, то ещё больше запутаетесь
VassilSanych
VassilSanych

PavelAd: В логе выводится все равно без милисекунд Потому что форматирование стандартное. Попробуйте так: dateValue.ToString("MM.dd.yyyy hh:mm:ss.fff"));