﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Ошибка с логами</title>
  <id>~/topic/1948/oshibka-s-logami/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-15T02:00:21Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=1948" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/11698/</id>
    <title type="text">Mikhail Sukhov: ILogListener все тот же? Тогда это тянется отсюда же http://stocksharp.com/posts/m/1...</title>
    <published>2011-09-28T18:10:28Z</published>
    <updated>2016-08-16T00:01:41Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.com/users/6053/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(11697)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
ILogListener все тот же? Тогда это тянется отсюда же &lt;a href="http://stocksharp.com/posts/m/11605/"&gt;http://stocksharp.com/posts/m/11605/&lt;/a&gt;
Да, то же самое, T400 реализует ILogListener. в качестве _logWindow используется MonitorWindow (потому что с LogWindow не работает пока).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;В прикрепленном файле посмотрите, эта ошибка с зависанием реализована для MainWindow из примера SimpleGUI.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11697/</id>
    <title type="text">ILogListener все тот же? Тогда это тянется отсюда же http://stocksharp.com/posts/m/11605/ </title>
    <published>2011-09-28T17:53:50Z</published>
    <updated>2016-08-16T00:01:41Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;ILogListener все тот же? Тогда это тянется отсюда же &lt;a href="http://stocksharp.com/posts/m/11605/"&gt;http://stocksharp.com/posts/m/11605/&lt;/a&gt;&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11793/</id>
    <title type="text">Mikhail Sukhov: FiNick: После последнего обновления StockSharp.Algo первая ошибка с LogWindow решила...</title>
    <published>2011-09-30T12:44:05Z</published>
    <updated>2011-09-30T12:44:05Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.com/users/6053/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(11785)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(11783)" rel="nofollow" target="_blank"&gt;FiNick&lt;/a&gt;:&lt;/strong&gt;
После последнего обновления StockSharp.Algo первая ошибка с LogWindow решилась. Проблема с зависанием осталась.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;А зависание от чего происходит?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Зависание возникает при вызове лога в момент дисконнекта:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;        void Trader_Disconnected()
        {
            //this.GuiAsync(() =&amp;gt; this.Log(new LogMessage(this, DateTime.Now, ErrorTypes.None, &amp;quot;  &amp;quot;))); //Так не зависает

            this.Log(new LogMessage(this, DateTime.Now, ErrorTypes.None, &amp;quot;  &amp;quot;));    //Так зависает
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Причем если обернуть GuiAsync, то не зависает. Это оочень странно, т.к. вроде как внутри GuiLogListener вызов лога оборачивается в GuiAsync автоматически.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11785/</id>
    <title type="text">FiNick: После последнего обновления StockSharp.Algo первая ошибка с LogWindow решилась. Проблема с з...</title>
    <published>2011-09-30T12:11:28Z</published>
    <updated>2011-09-30T12:11:28Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(11783)" rel="nofollow" target="_blank"&gt;FiNick&lt;/a&gt;:&lt;/strong&gt;
После последнего обновления StockSharp.Algo первая ошибка с LogWindow решилась. Проблема с зависанием осталась.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;А зависание от чего происходит?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11783/</id>
    <title type="text">После последнего обновления StockSharp.Algo первая ошибка с LogWindow решилась. Проблема с зависание...</title>
    <published>2011-09-30T11:45:18Z</published>
    <updated>2011-09-30T11:45:18Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.com/users/6053/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;После последнего обновления StockSharp.Algo первая ошибка с LogWindow решилась. Проблема с зависанием осталась.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11695/</id>
    <title type="text">Я вроде как понял: this.Trader.Disconnected += Trader_Disconnected; void Trader_Disconnected() { thi...</title>
    <published>2011-09-28T17:21:28Z</published>
    <updated>2011-09-28T17:31:27Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.com/users/6053/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Я вроде как понял:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;this.Trader.Disconnected += Trader_Disconnected;
void Trader_Disconnected()
{
     this.Log(new LogMessage(this, DateTime.Now, ErrorTypes.None, &amp;quot;Disconnected&amp;quot;));
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Проблема в том, что Log вызывается не GuiAsync. Я впринципе не могу вызвать его GuiAsync, т.к. это функция для некоторого DispatcherObject, окна тоесть, а я обрабатываю внутри T400.&lt;/p&gt;
&lt;p&gt;Я реализовывал ILogSource для MainWindow, та же проблема возникает. Но если написать так&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;void Trader_Disconnected()
        {
            this.GuiAsync(() =&amp;gt; this.Log(new LogMessage(this, DateTime.Now, ErrorTypes.None, &amp;quot;  &amp;quot;)));

            //this.Log(new LogMessage(this, DateTime.Now, ErrorTypes.None, &amp;quot;  &amp;quot;));    Так не работает
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;то все норм.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11694/</id>
    <title type="text">FiNick: Alexander: Сделайте в конструкторе Id = Guid.NewGuid() и оставьте set; get; по умолчанию. Не...</title>
    <published>2011-09-28T15:38:40Z</published>
    <updated>2011-09-28T15:38:40Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(11693)" rel="nofollow" target="_blank"&gt;FiNick&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(11690)" rel="nofollow" target="_blank"&gt;Alexander&lt;/a&gt;:&lt;/strong&gt;
Сделайте в конструкторе Id = Guid.NewGuid() и оставьте set; get; по умолчанию.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Не помогло=(&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Подозреваю, что ошибка не в S#.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11693/</id>
    <title type="text">Alexander: Сделайте в конструкторе Id = Guid.NewGuid() и оставьте set; get; по умолчанию. Не помогло...</title>
    <published>2011-09-28T15:17:48Z</published>
    <updated>2011-09-28T15:17:48Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.com/users/6053/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(11690)" rel="nofollow" target="_blank"&gt;Alexander&lt;/a&gt;:&lt;/strong&gt;
Сделайте в конструкторе Id = Guid.NewGuid() и оставьте set; get; по умолчанию.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Не помогло=(&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11690/</id>
    <title type="text">FiNick: ODE0� Каждый раз будет создаваться новый Guid. Сделайте в конструкторе Id = Guid.NewGuid() и...</title>
    <published>2011-09-28T13:28:48Z</published>
    <updated>2011-09-28T13:28:48Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(11688)" rel="nofollow" target="_blank"&gt;FiNick&lt;/a&gt;:&lt;/strong&gt;
ODE0�&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Каждый раз будет создаваться новый Guid.
Сделайте в конструкторе Id = Guid.NewGuid() и оставьте set; get; по умолчанию.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11688/</id>
    <title type="text">Поправка: Если перед отключением от плазы сделать logManager.Sources.Remove(t400); то все нормально ...</title>
    <published>2011-09-28T12:46:52Z</published>
    <updated>2011-09-28T12:47:29Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.com/users/6053/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Поправка:
Если перед отключением от плазы сделать logManager.Sources.Remove(t400); то все нормально становится.
Видимо дело в том, как я реализовал ILogSource у T400&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;        #region ILogSource Members
        public event Action&amp;lt;LogMessage&amp;gt; Log;
        
        public string Name
        {
            get { return &amp;quot;T400&amp;quot;; }
        }
        
        public Ecng.Collections.INotifyList&amp;lt;ILogSource&amp;gt; Childs
        {
            get { return null; }
        }

        public Guid Id
        {
            get { return Guid.NewGuid(); }
        }

        public ILogSource Parent
        {
            get { return null; }
        }

        #endregion
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11686/</id>
    <title type="text">Там еще одна ошибка есть жесткая: при попытке отключится прога зависает намертво. Я выяснил что это ...</title>
    <published>2011-09-28T12:00:21Z</published>
    <updated>2011-09-28T12:00:21Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.com/users/6053/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Там еще одна ошибка есть жесткая: при попытке отключится прога зависает намертво. Я выяснил что это именно связано с логгированием. То есть, если не подключать логгирование```csharp
guiLogListener = new GuiLogListener(_logWindow);
logManager.Listeners.Add(guiLogListener);&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-то"&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11605/</id>
    <title type="text">FiNick: Ошибка возникает в рантайме, возможно так какое-нибудь явное преобразование типов стоит, обы...</title>
    <published>2011-09-27T10:39:34Z</published>
    <updated>2011-09-27T10:39:34Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(11588)" rel="nofollow" target="_blank"&gt;FiNick&lt;/a&gt;:&lt;/strong&gt;
Ошибка возникает в рантайме, возможно так какое-нибудь явное преобразование типов стоит, обычно оно такие ошибки дает.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;В последней версии ошибка. Исправил в ближайшее время.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11588/</id>
    <title type="text">Alexander: LogWindow не наследует ILogListener Правильно, но его наследует GuiLogListener. У меня на...</title>
    <published>2011-09-27T07:42:43Z</published>
    <updated>2011-09-27T08:17:52Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.com/users/6053/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(11577)" rel="nofollow" target="_blank"&gt;Alexander&lt;/a&gt;:&lt;/strong&gt;
LogWindow не наследует ILogListener
Правильно, но его наследует GuiLogListener. У меня написано&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;guiLogListener = new GuiLogListener(_logWindow);
logManager.Listeners.Add(guiLogListener);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Конструктор GuiLogListener принимает типы LogControl, LogWindow, MonitorWindow, это собственно окна, которые будут отображать логи. Раньше с LogWindow все работало, теперь нет.
Ошибка возникает в рантайме, возможно так какое-нибудь явное преобразование типов стоит, обычно оно такие ошибки дает.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11577/</id>
    <title type="text">FiNick: Короче это бага в последней сборке похоже. Если переменная _logWindow имеет тип MonitorWindo...</title>
    <published>2011-09-27T07:21:01Z</published>
    <updated>2011-09-27T07:21:01Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(11576)" rel="nofollow" target="_blank"&gt;FiNick&lt;/a&gt;:&lt;/strong&gt;
Короче это бага в последней сборке похоже.
Если переменная _logWindow имеет тип MonitorWindow то все прекрасно работает, если тип LogWindow то ломается. Странно, ведь LogWindow тоже является DispatcherObject'ом. Я исходников StockSharp.Xaml не имею, потому посмотреть что там не могу.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;LogWindow не наследует ILogListener&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11576/</id>
    <title type="text">Короче это бага в последней сборке похоже. Если переменная _logWindow имеет тип MonitorWindow то все...</title>
    <published>2011-09-27T07:17:55Z</published>
    <updated>2011-09-27T07:17:55Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.com/users/6053/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Короче это бага в последней сборке похоже.
Если переменная _logWindow имеет тип MonitorWindow то все прекрасно работает, если тип LogWindow то ломается. Странно, ведь LogWindow тоже является DispatcherObject'ом. Я исходников StockSharp.Xaml не имею, потому посмотреть что там не могу.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11564/</id>
    <title type="text">Guid пропишите Guid.NewGuid() в конструкторе остальное верните null Посмотрите это ради примера </title>
    <published>2011-09-26T20:46:40Z</published>
    <updated>2011-09-26T20:46:40Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Guid пропишите Guid.NewGuid() в конструкторе
остальное верните null&lt;/p&gt;
&lt;p&gt;&lt;a href="http://stocksharp.codeplex.com/SourceControl/changeset/view/9919#71834" rel="nofollow" target="_blank"&gt;Посмотрите это ради примера&lt;/a&gt;&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11563/</id>
    <title type="text">Вот код: private void OnLogUpdate(ErrorTypes err, string message) { this.Log(new LogMessage(this, Da...</title>
    <published>2011-09-26T20:38:40Z</published>
    <updated>2011-09-26T20:46:20Z</updated>
    <author>
      <name>FiNick</name>
      <uri>https://stocksharp.com/users/6053/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Вот код:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;        private void OnLogUpdate(ErrorTypes err, string message)
        {
            this.Log(new LogMessage(this, DateTime.Now, err, message));
        }
        
        public T400()
        {            
            plaza = new PlazaTrader(this.StrategyParameters.PlazaRouterPath.To&amp;lt;IPEndPoint&amp;gt;());
            this.candleManager = new CandleManager(plaza);
            logManager = new LogManager();
            logManager.Sources.Add(this);
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;T400 это робот, по сути класс-инфраструктура для запуска стратегии, чтобы он тоже мог писать логи реализуется ILogSource.
На старте робота выполняется:```csharp
guiLogListener = new GuiLogListener(_logWindow);
t400.AddLogListener(guiLogListener);&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Потом, при выполнении OnLogUpdate ошибка: [System.ArgumentNullException] = {&amp;quot;Значение не может быть неопределенным.\r\nИмя параметра: obj&amp;quot;}
Вот стэктрэйс:
 в Ecng.Xaml.XamlHelper.GuiSync(DispatcherObject obj, Action action)
   в StockSharp.Xaml.GuiLogListener.OnWriteMessage(LogMessage message)
   в StockSharp.Algo.Logging.LogListener.WriteMessage(LogMessage message)
   в StockSharp.Algo.Logging.LogManager.#=qrUj$Ns0mMAxxqh0k0FFJLB8wrKr4pz7DsmdCpRVKh18=.#=q3S_X0XbExHKU68uzjbFQVxw4VT4yOdgZvBt8Dr1nZXc=(ILogListener #=qeUzjoy2OxlhpLB1gDjK5qQ==)
   в Ecng.Collections.CollectionHelper.ForEach(IEnumerable`1 source, Action`1 action)
   в StockSharp.Algo.Logging.LogManager.#=qm2awVrrxMn_7KT6KAHw0Wg==(LogMessage #=qJiXkieLb13i$V63GpKExqw==)
   в Skynet.T400.OnLogUpdate(ErrorTypes err, String message)

Собственно вопрос: что передается в GuiSync в качестве DispatcherObject и почему все ломается.
Второй вопрос: как правильно в такой ситуации реализовать ILogSource, кто будет Parent, кто Childs, и зачем там Guid?

P.S. Ошибка появилась оч недавно, после последнего обновления референсов
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>