Дерево логируемых классов~/topic/10812/derevo-logiruemyh-klassov/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-28T19:16:53Zhttps://stocksharp.com/images/logo.pnghttps://stocksharp.com/posts/m/47869/Например, как в BaseLogReceiver https://github.com/StockSharp/StockSharp/blob/master/Logging/ILogRec...2019-06-21T15:01:46Z2019-06-21T15:01:46ZSupporthttps://stocksharp.com/users/97869/info@stocksharp.comНапример, как в BaseLogReceiver <a target="_blank" href="https://github.com/StockSharp/StockSharp/blob/master/Logging/ILogReceiver.cs#L44" title="https://github.com/StockSharp/StockSharp/blob/master/Logging/ILogReceiver.cs#L44">https://github.com/Stock...ging/ILogReceiver.cs#L44</a>Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/47868/Дополнительно требуется отнеследовать от интерфейса ILogReceiver. Родительские через метод AddLog по...2019-06-21T14:45:15Z2019-06-21T14:45:15ZКонстантинhttps://stocksharp.com/users/98279/info@stocksharp.com<div class="quote"><span class="quotetitle">Support <a href="https://stocksharp.com/posts/m/47865/"><img src="https://stocksharp.com/images/icon_latest_reply.gif" title="Go to" alt="Go to" /></a></span><div class="innerquote">Дополнительно требуется отнеследовать от интерфейса ILogReceiver. Родительские через метод AddLog получает сообщения от дочерних элементов.</div></div><br /><br />Я не понимаю какая должна быть реализация метода AddLog что бы дочерние элементы появились в дереве. Каким образом нужно передавать LogMessage родителю?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/47865/Дополнительно требуется отнеследовать от интерфейса ILogReceiver. Родительские через метод AddLog по...2019-06-21T13:07:50Z2019-06-21T13:07:50ZSupporthttps://stocksharp.com/users/97869/info@stocksharp.comДополнительно требуется отнеследовать от интерфейса ILogReceiver. Родительские через метод AddLog получает сообщения от дочерних элементов.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/47862/Добавлять дочерние источники не нужно: LogManager.Sources.Add(testSourceWindow); Как только ваш исто...2019-06-20T20:02:36Z2019-06-20T20:02:36ZКонстантинhttps://stocksharp.com/users/98279/info@stocksharp.com<div class="quote"><span class="quotetitle">Support <a href="https://stocksharp.com/posts/m/47859/"><img src="https://stocksharp.com/images/icon_latest_reply.gif" title="Go to" alt="Go to" /></a></span><div class="innerquote">Добавлять дочерние источники не нужно:<br /><br /><div class="code"><strong>Code</strong><div class="innercode">LogManager.Sources.Add(testSourceWindow);</div></div><br /><br />Как только ваш источник пошлёт первое сообщение он появится в дереве.</div></div><br /><br />Если дочерний источник не добавлять то от него вывода нет вообще.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/47859/Добавлять дочерние источники не нужно: LogManager.Sources.Add(testSourceWindow); Как только ваш исто...2019-06-20T16:25:26Z2019-06-20T16:25:26ZSupporthttps://stocksharp.com/users/97869/info@stocksharp.comДобавлять дочерние источники не нужно:<br /><br /><div class="code"><strong>Code</strong><div class="innercode">LogManager.Sources.Add(testSourceWindow);</div></div><br /><br />Как только ваш источник пошлёт первое сообщение он появится в дереве.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/47848/Здравствуйте! Как можно вложить логируемый класс в основной что бы в StockSharp.Xaml.Monitor он выво...2019-06-19T20:05:41Z2019-06-19T20:05:41ZКонстантинhttps://stocksharp.com/users/98279/info@stocksharp.comЗдравствуйте! Как можно вложить логируемый класс в основной что бы в StockSharp.Xaml.Monitor он выводился внутри дерева основного?<br />Устанавливал значение Parent и IsRoot разными способами но никаких изменений нет.<br /><div class='spoilertitle'><input type='button' value='Show spoiler' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_7bfdee766a54437783d7c19a269446ca');" title='Show spoiler' /></div><div class='spoilerbox' id='spolier_7bfdee766a54437783d7c19a269446ca' style='display:none'><div class="code"><strong>Code</strong><div class="innercode"><Window x:Class="WpfApp2.MainWindow"<br /> xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"<br /> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"<br /> xmlns:d="http://schemas.microsoft.com/expression/blend/2008"<br /> xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"<br /> xmlns:local="clr-namespace:WpfApp2"<br /> xmlns:xaml="http://schemas.stocksharp.com/xaml"<br /> mc:Ignorable="d"<br /> Title="MainWindow" Height="350" Width="800"><br /> <Grid><br /> <Grid.RowDefinitions><br /> <RowDefinition/><br /> <RowDefinition Height="Auto"/><br /> </Grid.RowDefinitions><br /> <xaml:Monitor Name="Monitor"/><br /> <Button Content="Start" Click="Button_Click" Grid.Row="1" Margin="3"/><br /> </Grid><br /></Window></div></div><br /><br /><div class="code"><strong>Code</strong><div class="innercode">using System;<br />using System.Windows;<br />using StockSharp.Logging;<br />using StockSharp.Xaml;<br /><br />namespace WpfApp2<br />{<br /> /// <summary><br /> /// Логика взаимодействия для MainWindow.xaml<br /> /// </summary><br /> public partial class MainWindow : ILogSource<br /> {<br /> public readonly LogManager LogManager;<br /> public Guid Id { get; }<br /> public new ILogSource Parent { get; set; }<br /> public LogLevels LogLevel { get; set; }<br /> public DateTimeOffset CurrentTime => DateTimeOffset.Now;<br /> public bool IsRoot { get; }<br /><br /> public event Action<LogMessage> Log;<br /><br /> public MainWindow()<br /> {<br /> InitializeComponent();<br /> Name = "MainWindow";<br /> LogManager = new LogManager();<br /> LogLevel = LogLevels.Info;<br /> LogManager.Sources.Add(this);<br /> LogManager.Listeners.Add(new GuiLogListener(Monitor));<br /> }<br /><br /> private void Button_Click(object sender, RoutedEventArgs e)<br /> {<br /> Log?.Invoke(new LogMessage(this, CurrentTime, LogLevel, "Сообщение главного класса."));<br /> var testSourceWindow = new TestClass()<br /> {<br /> Parent = this<br /> };<br /> LogManager.Sources.Add(testSourceWindow);<br /> testSourceWindow.Test();<br /> }<br /><br /> public void Dispose()<br /> {<br /> throw new NotImplementedException();<br /> }<br /><br /> }<br /><br /><br /> class TestClass : ILogSource<br /> {<br /> private ILogSource _parent;<br /><br /> public void Dispose()<br /> {<br /> throw new NotImplementedException();<br /> }<br /><br /> public Guid Id { get; }<br /> public string Name { get; set; } = "TestClass";<br /> public ILogSource Parent<br /> {<br /> get => _parent;<br /> set<br /> {<br /> _parent = value;<br /> LogLevel = value.LogLevel;<br /> }<br /> }<br /><br /> public LogLevels LogLevel { get; set; }<br /> public DateTimeOffset CurrentTime => DateTimeOffset.Now;<br /> public bool IsRoot { get; }<br /> public event Action<LogMessage> Log;<br /><br /> public void Test()<br /> {<br /> Log?.Invoke(new LogMessage(this, CurrentTime, LogLevel, $"Сообщение вторичного класса."));<br /> }<br /> }<br />}<br /></div></div></div>Copyright @ StockSharp Platform LLC 2010 - 2024