﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Логирование дочерних объектов</title>
  <id>~/topic/9130/logirovanie-dochernih-obektov/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-21T16:53:42Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=9130" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/42842/</id>
    <title type="text">Для этого нужно указать название у источника.</title>
    <published>2018-02-28T08:12:52Z</published>
    <updated>2018-02-28T08:12:52Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Для этого нужно указать название у источника.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/42833/</id>
    <title type="text">Здравствуйте. Прошу прощения, я не правильно выразился. Не в правой области, а в левой области нужно...</title>
    <published>2018-02-27T10:58:47Z</published>
    <updated>2018-02-27T10:58:47Z</updated>
    <author>
      <name>Константин</name>
      <uri>https://stocksharp.ru/users/98279/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Здравствуйте. Прошу прощения, я не правильно выразился. Не в правой области, а в левой области нужно вывести ссылки на источники логов. И как их можно сделать вложенными?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/42831/</id>
    <title type="text">Добрый день Лог выводит только те колонки которые можно выбрать в таблице.</title>
    <published>2018-02-27T09:59:48Z</published>
    <updated>2018-02-27T09:59:48Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день &lt;br /&gt;&lt;br /&gt;Лог выводит только те колонки которые можно выбрать в таблице.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/42824/</id>
    <title type="text">Здравствуйте. Лог выводится. Еще нужно что бы в правой области выводились ссылки на источники логов ...</title>
    <published>2018-02-26T20:07:33Z</published>
    <updated>2018-02-26T20:07:33Z</updated>
    <author>
      <name>Константин</name>
      <uri>https://stocksharp.ru/users/98279/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Здравствуйте. Лог выводится. Еще нужно что бы в правой области выводились ссылки на источники логов как на скриншоте выше. И как их можно сделать вложенными?&lt;br /&gt;&lt;a target="_blank" href="https://github.com/Constalgo/LearningSolution/tree/master/WpfApp2" title="https://github.com/Constalgo/LearningSolution/tree/master/WpfApp2"&gt;Код на GitHub&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/42768/</id>
    <title type="text">Добрый день Вам необходимо добавлять графические слушатели через специальных класс: _logManager.List...</title>
    <published>2018-02-21T16:39:10Z</published>
    <updated>2018-02-21T16:39:10Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день&lt;br /&gt;&lt;br /&gt;Вам необходимо добавлять графические слушатели через специальных класс:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;_logManager.Listeners.Add(new GuiLogListener(MonitorWindow));&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;И для каждого источника установить имя.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/42723/</id>
    <title type="text">Код главного окна /// /// Логика взаимодействия для MainWindow.xaml /// public partial class MainWin...</title>
    <published>2018-02-16T21:27:17Z</published>
    <updated>2018-02-16T21:28:44Z</updated>
    <author>
      <name>Константин</name>
      <uri>https://stocksharp.ru/users/98279/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Код главного окна&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_e76ec3ffab7f4297b5deb31caee6935f');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_e76ec3ffab7f4297b5deb31caee6935f' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// Логика взаимодействия для MainWindow.xaml&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    public partial class MainWindow : Window, ILogSource&lt;br /&gt;    {&lt;br /&gt;        public TestSourceWindow TestSourceWindow;&lt;br /&gt;        private readonly LogManager _logManager = new LogManager();&lt;br /&gt;        public Guid Id { get; }&lt;br /&gt;        public ILogSource Parent { get; set; }&lt;br /&gt;        public LogLevels LogLevel { get; set; }&lt;br /&gt;        public DateTimeOffset CurrentTime =&amp;gt; DateTimeOffset.Now;&lt;br /&gt;        public bool IsRoot { get; }&lt;br /&gt;        public MonitorWindow MonitorWindow { get; private set; }&lt;br /&gt;&lt;br /&gt;        public event Action&amp;lt;LogMessage&amp;gt; Log;&lt;br /&gt;&lt;br /&gt;        public MainWindow()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;            this.LogLevel = LogLevels.Verbose;&lt;br /&gt;            _logManager = new LogManager();&lt;br /&gt;            _logManager.Sources.Add(this);&lt;br /&gt;&lt;br /&gt;            TestSourceWindow = new TestSourceWindow();&lt;br /&gt;            TestSourceWindow.Parent = this;&lt;br /&gt;            TestSourceWindow.LogLevel = LogLevel;&lt;br /&gt;            _logManager.Sources.Add(TestSourceWindow);&lt;br /&gt;&lt;br /&gt;            MonitorWindow = new MonitorWindow();&lt;br /&gt;            _logManager.Listeners.Add(MonitorWindow);&lt;br /&gt;            MonitorWindow.Show();&lt;br /&gt;&lt;br /&gt;            Loaded += MainWindow_Loaded;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Выводим 10 сообщений главного окна&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;sender&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;e&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;        private void MainWindow_Loaded(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            for (var i = 0; i &amp;lt; 10; i++)&lt;br /&gt;            {&lt;br /&gt;                var level = RandomGen.GetEnum&amp;lt;LogLevels&amp;gt;();&lt;br /&gt;&lt;br /&gt;                switch (level)&lt;br /&gt;                {&lt;br /&gt;                    case LogLevels.Verbose:&lt;br /&gt;                    case LogLevels.Inherit:&lt;br /&gt;                    case LogLevels.Debug:&lt;br /&gt;                    case LogLevels.Info:&lt;br /&gt;                    case LogLevels.Off:&lt;br /&gt;                        Log?.Invoke(new LogMessage(this, CurrentTime, LogLevel, $&amp;quot;Сообщение главного окна {level}&amp;quot;));&lt;br /&gt;                        break;&lt;br /&gt;                    case LogLevels.Warning:&lt;br /&gt;                        Log?.Invoke(new LogMessage(this, CurrentTime, LogLevel, $&amp;quot;Сообщение главного окна {level}&amp;quot;));&lt;br /&gt;                        break;&lt;br /&gt;                    case LogLevels.Error:&lt;br /&gt;                        Log?.Invoke(new LogMessage(this, CurrentTime, LogLevel, $&amp;quot;Сообщение главного окна {level}&amp;quot;));&lt;br /&gt;                        break;&lt;br /&gt;                    default:&lt;br /&gt;                        throw new ArgumentOutOfRangeException();&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void Button_Click(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            TestSourceWindow.Show();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void Dispose()&lt;br /&gt;        {&lt;br /&gt;            throw new NotImplementedException();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Код дочернего окна:&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_8b6892eefb644db18dbce052157d3cee');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_8b6892eefb644db18dbce052157d3cee' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// Логика взаимодействия для TestSourceWindow.xaml&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    public partial class TestSourceWindow : Window, ILogSource&lt;br /&gt;    {&lt;br /&gt;        public Guid Id { get; }&lt;br /&gt;        public LogLevels LogLevel { get; set; }&lt;br /&gt;        public DateTimeOffset CurrentTime =&amp;gt; DateTimeOffset.Now;&lt;br /&gt;        public bool IsRoot { get; }&lt;br /&gt;        public ILogSource Parent { get; set; }&lt;br /&gt;        public event Action&amp;lt;LogMessage&amp;gt; Log;&lt;br /&gt;&lt;br /&gt;        public TestSourceWindow()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;            Loaded += TestSourceWindow_Loaded;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Выводим 10 сообщений дочернего окна&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;sender&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;e&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;        private void TestSourceWindow_Loaded(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            for (var i = 0; i &amp;lt; 10; i++)&lt;br /&gt;            {&lt;br /&gt;                var level = RandomGen.GetEnum&amp;lt;LogLevels&amp;gt;();&lt;br /&gt;&lt;br /&gt;                switch (level)&lt;br /&gt;                {&lt;br /&gt;                    case LogLevels.Verbose:&lt;br /&gt;                    case LogLevels.Inherit:&lt;br /&gt;                    case LogLevels.Debug:&lt;br /&gt;                    case LogLevels.Info:&lt;br /&gt;                    case LogLevels.Off:&lt;br /&gt;                        Log?.Invoke(new LogMessage(this, CurrentTime, LogLevel, $&amp;quot;Сообщение дочернего окна {level}&amp;quot;));&lt;br /&gt;                        break;&lt;br /&gt;                    case LogLevels.Warning:&lt;br /&gt;                        Log?.Invoke(new LogMessage(this, CurrentTime, LogLevel, $&amp;quot;Сообщение дочернего окна {level}&amp;quot;));&lt;br /&gt;                        break;&lt;br /&gt;                    case LogLevels.Error:&lt;br /&gt;                        Log?.Invoke(new LogMessage(this, CurrentTime, LogLevel, $&amp;quot;Сообщение дочернего окна {level}&amp;quot;));&lt;br /&gt;                        break;&lt;br /&gt;                    default:&lt;br /&gt;                        throw new ArgumentOutOfRangeException();&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void Dispose()&lt;br /&gt;        {&lt;br /&gt;            throw new NotImplementedException();&lt;br /&gt;        }&lt;br /&gt;    }&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Во вложении проект</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/42704/</id>
    <title type="text">Добрый день. Пример легирование https://github.com/StockSharp/StockSharp/tree/master/Samples/Common/...</title>
    <published>2018-02-15T10:18:25Z</published>
    <updated>2018-02-15T10:18:25Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день.&lt;br /&gt;&lt;br /&gt;Пример легирование &lt;a target="_blank" href="https://github.com/StockSharp/StockSharp/tree/master/Samples/Common/SampleLogging
" title="https://github.com/StockSharp/StockSharp/tree/master/Samples/Common/SampleLogging
"&gt;https://github.com/Stock...es/Common/SampleLogging
&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Пришлите ваш код для анализа.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/42687/</id>
    <title type="text">Добрый день! Пытаюсь разобраться с логированием. А точнее как сделать что бы в окне MonitorWindow вы...</title>
    <published>2018-02-14T12:28:32Z</published>
    <updated>2018-02-14T12:28:32Z</updated>
    <author>
      <name>Константин</name>
      <uri>https://stocksharp.ru/users/98279/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день! Пытаюсь разобраться с логированием. А точнее как сделать что бы в окне MonitorWindow выводились дочерние объекты ILogSource? Что бы можно было просматривать их логи отдельно.&lt;br /&gt;&lt;a href='https://pp.userapi.com/c840230/v840230737/74989/JPkKx0plqb0.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://pp.userapi.com/c840230/v840230737/74989/JPkKx0plqb0.jpg" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;В конструкторе главного окна делаю следующее:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;        public MainWindow()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;            LogLevel = LogLevels.Verbose;&lt;br /&gt;            LogManager = new LogManager();&lt;br /&gt;            LogManager.Sources.Add(this);&lt;br /&gt;            TestLogSourceWindow = new TestLogSourceWindow();&lt;br /&gt;            TestLogSourceWindow.Parent = this;&lt;br /&gt;            TestLogSourceWindow.LogLevel = LogLevel;&lt;br /&gt;            LogManager.Sources.Add(TestLogSourceWindow);&lt;br /&gt;            MonitorWindow = new MonitorWindow();&lt;br /&gt;            LogManager.Listeners.Add(MonitorWindow);&lt;br /&gt;        }&lt;br /&gt;&lt;/div&gt;&lt;/div&gt; &lt;br /&gt;В дочернем окне TestLogSourceWindow вызываю событие Log:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;Log?.Invoke(new LogMessage(this, CurrentTime, LogLevels.Info, &amp;quot;Сообщение дочернего окна&amp;quot;));&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Но на событие нет подписки. Разве при добавлении ILogSource в LogManager он не подписывается на событие Log? Свойство ILogSource.Parent устанавливает родителя дочернему объекту?&lt;br /&gt;Помогите реализовать такую задачу. Примеров по логированию нет. </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>