Стратегия не отпускает файл лога после остановки и при последующем старте мешает его открытию.
2013/02/26 12:59:28.271| |SS_RIH3@RTS_SPBFUT00066|Стратегия остановлена. [0,-1]. Позиция при старте 0.
2013/02/26 12:59:28.271| |StrategyManager|Status:Stopped, PnL:-110, Slippage:-70, Position:0, Latency:00:00:01.1456274, ProcessState
2013/02/26 12:59:28.271| |QuikManager|265 Заявка 45101234/2007094247 Продажа Цена=152720 Объем=1 Сост=Done Бал=0
2013/02/26 12:59:28.272| |QuikManager|265 Заявка 45101234/2007094247 Продажа Цена=152720 Объем=1 Сост=Done Бал=0
2013/02/26 12:59:43.745| |StrategyManager|Status:Started, PnL:0, Slippage:0, Position:0, Latency:00:00:00, StartedTime
2013/02/26 12:59:43.745| |SS |Стратегия запущена. [0,-1]. Позиция при старте 0.
2013/02/26 12:59:41.204|Error |VgnRobot.App|System.IO.IOException: Процесс не может получить доступ к файлу "E:\Projects\VGnRobot1\Robot\bin\x86\Debug\SS 20130226.txt", так как этот файл используется другим процессом.
в System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
в System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
в System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
в System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
в System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
в System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
в StockSharp.Logging.FileLogListener.OnCreateWriter(String fileName) в e:\Projects\C_Projects\StockSharp\Sources\Logging\FileLogListener.cs:строка 264
в StockSharp.Logging.FileLogListener.<>c__DisplayClass2.<>c__DisplayClass4.<OnWriteMessages>b__1(Tuple`2 key) в e:\Projects\C_Projects\StockSharp\Sources\Logging\FileLogListener.cs:строка 292
в Ecng.Collections.CollectionHelper.SafeAdd[TKey,TValue](IDictionary`2 dictionary, TKey key, Func`2 handler, Boolean& isNew) в e:\Ecng\trunk\Collections\CollectionHelper.cs:строка 479
в Ecng.Collections.CollectionHelper.SafeAdd[TKey,TValue](IDictionary`2 dictionary, TKey key, Func`2 handler) в e:\Ecng\trunk\Collections\CollectionHelper.cs:строка 456
в StockSharp.Logging.FileLogListener.<>c__DisplayClass2.<OnWriteMessages>b__0(LogMessage m) в e:\Projects\C_Projects\StockSharp\Sources\Logging\FileLogListener.cs:строка 292
в System.Linq.Lookup`2.Create[TSource](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
в System.Linq.GroupedEnumerable`3.GetEnumerator()
в System.Linq.Parallel.ParallelEnumerableWrapper`1.GetEnumerator()
в StockSharp.Logging.FileLogListener.OnWriteMessages(IEnumerable`1 messages) в e:\Projects\C_Projects\StockSharp\Sources\Logging\FileLogListener.cs:строка 285
в StockSharp.Logging.LogListener.WriteMessages(IEnumerable`1 messages) в e:\Projects\C_Projects\StockSharp\Sources\Logging\LogListener.cs:строка 94
в StockSharp.Logging.LogManager.<>c__DisplayClass2.<Flush>b__1(ILogListener l) в e:\Projects\C_Projects\StockSharp\Sources\Logging\LogManager.cs:строка 106
в Ecng.Collections.CollectionHelper.ForEach[T](IEnumerable`1 source, Action`1 action) в e:\Ecng\trunk\Collections\CollectionHelper.cs:строка 108
в StockSharp.Logging.LogManager.Flush() в e:\Projects\C_Projects\StockSharp\Sources\Logging\LogManager.cs:строка 106
в Ecng.Common.ThreadingHelper.<>c__DisplayClass1.<Timer>b__0(Object s) в d:\Projects\StockSharp.com\Ecng\trunk\Common\ThreadingHelper.cs:строка 15
в System.Threading.TimerQueueTimer.CallCallbackInContext(Object state)
в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.TimerQueueTimer.CallCallback()
в System.Threading.TimerQueueTimer.Fire()
в System.Threading.TimerQueue.FireNextTimers()
в System.Threading.TimerQueue.AppDomainTimerCallback()
Kommentare (3)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Проехали. Мой косяк. Старую стратегию останавливаю, но не убиваю. Надо жёстко убивать и обрубать концы диспозом :)
Вообще правильнее было бы закрывать лог файл после остановки в том месте где логгинг идет. А не изобретать велосипед путем убийства стратегии итд.