public void WriteLog(char data) { if (LogTextBox.Dispatcher.CheckAccess()) { LogTextBox.Text += data; LogTextBox.SelectionStart = LogTextBox.Text.Length; LogTextBox.ScrollToEnd(); } else { LogTextBox.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { WriteLog(data); })); } }
private void WriteLog(string data) { if (LogTextBox.Dispatcher.CheckAccess()) { LogTextBox.Text += data + Environment.NewLine; LogTextBox.SelectionStart = LogTextBox.Text.Length; LogTextBox.CaretIndex = LogTextBox.Text.Length; LogTextBox.ScrollToEnd(); } else { LogTextBox.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { WriteLog(data); })); } }
private void _writeTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { try { var value = (byte)'1'; _file.WriteByte(value); Dispatcher.Invoke(() => LogTextBox.AppendText("1")); Dispatcher.Invoke(() => LogTextBox.ScrollToEnd()); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка записи в файл"); } }
private void AddLog() { var Q = Debugger.LogQueue; while (Q.Count > 0) { var log = Q.Dequeue(); LogList.Add(log); LogTextBox.AppendText(log + Environment.NewLine); } LogTextBox.ScrollToEnd(); }
private void Log(string level, string message) { Dispatcher.BeginInvoke(new Action(delegate() { string log = LogTextBox.Text; log += level.PadRight(5) + " | " + message + Environment.NewLine; if (log.Length > 1000) { log = log.Substring(log.Length - 1000, 1000); } LogTextBox.Text = log; LogTextBox.ScrollToEnd(); })); }
private void AddLogInfo(byte[] array, bool isOutput) { var hex = BitConverter.ToString(array).Replace("-", " ") + "\n"; if (isOutput) { LogTextBox.AppendText(DateTime.Now.ToString("G") + "\tOUT\t->\t" + hex); } else { LogTextBox.AppendText(DateTime.Now.ToString("G") + "\tIN\t->\t" + hex + "\n"); } LogTextBox.ScrollToEnd(); }
private async void Log(string message) { await Dispatcher.ResumeForeground(); LogTextBox.Text += DateTime.Now.ToString("hh:mm:ss.fff") + " " + message + "\r\n"; if (LogTextBox.Text.Length > 2000) { LogTextBox.Text = LogTextBox.Text.Substring(1000); } LogTextBox.SelectionStart = LogTextBox.Text.Length - 1; LogTextBox.SelectionLength = 0; LogTextBox.ScrollToEnd(); }
private void ReadLog() { var newLogFile = Logging.LogFile; if (newLogFile != _currentLogFile) { _currentOffset = 0; _currentLogFile = newLogFile; _currentLogFileName = Logging.LogFileName; } try { using var reader = new StreamReader(new FileStream(newLogFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)); if (_currentOffset == 0) { var maxSize = reader.BaseStream.Length; if (maxSize > MaxReadSize) { reader.BaseStream.Seek(-MaxReadSize, SeekOrigin.End); reader.ReadLine(); } } else { reader.BaseStream.Seek(_currentOffset, SeekOrigin.Begin); } var txt = reader.ReadToEnd(); if (!string.IsNullOrEmpty(txt)) { LogTextBox.AppendText(txt); LogTextBox.ScrollToEnd(); } _currentOffset = reader.BaseStream.Position; } catch (FileNotFoundException) { } catch (ArgumentNullException) { } Title = $@"{I18N.GetString(@"Log Viewer")} {_currentLogFileName}"; }
private void _readTimer_Elapsed(object sender, ElapsedEventArgs e) { try { var value = (char)_file.ReadByte(); if (value != '1') { Dispatcher.Invoke(() => DisplayStateTextBox.Text = "Закончено чтение файла"); Dispatcher.Invoke(() => _readTimer.Stop()); return; } Dispatcher.Invoke(() => LogTextBox.AppendText(value.ToString())); Dispatcher.Invoke(() => LogTextBox.ScrollToEnd()); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка чтения файла"); } }
private void Log(string txt, Stopwatch st = null) { LogTextBox.Dispatcher.Invoke(() => { string s = DateTime.Now.ToString() + " " + txt; if (st != null) { ElapsedLabel.Visibility = Visibility.Visible; ElapsedLabel.Content = st.ElapsedMilliseconds; } s += Environment.NewLine; LogTextBox.AppendText(s); // refresh every 100 ms - speed - not for every log write LogTextBox.ScrollToEnd(); GingerCore.General.DoEvents(); } ); }
public void Log(LogEntry entry) { string logMessage = ""; if (entry.Severity != LoggingEventType.Information) { logMessage += entry.Severity.ToString() + ": "; } if (entry.Message != null) { logMessage += entry.Message; } if (entry.Exception != null) { logMessage += "\nException: " + entry.Exception.ToString(); } string text = LogTextBox.Text; text += logMessage + "\n"; LogTextBox.Text = text; LogTextBox.ScrollToEnd(); }
private void OnLogTextBoxTextChanged(object sender, TextChangedEventArgs e) { LogTextBox.CaretIndex = LogTextBox.Text.Length; LogTextBox.ScrollToEnd(); }
private void LogTextBox_TextChanged(object sender, TextChangedEventArgs e) { LogTextBox.ScrollToEnd(); }
private void Notifications_ChannelTalkStatusChanged(object sender, TalkStatusEventArgsBase e) { LogTextBox.AppendText(e.GetDumpString()); LogTextBox.ScrollToEnd(); }
private void QueryDispatcher_NotificationReceived(object sender, EventArgs <string> e) { LogTextBox.AppendText(e.Value); LogTextBox.ScrollToEnd(); }
public MainView() { InitializeComponent(); LogTextBox.TextChanged += (sender, args) => { LogTextBox.ScrollToEnd(); }; }
/// <summary> /// Log an entry by appending the the Log textbox /// </summary> /// <param name="entry">Entry to log</param> private void Log(string entry) { LogTextBox.AppendText($"{entry}\n"); LogTextBox.ScrollToEnd(); }
/// <summary> /// Scrolls the logfile textbox to the end, so that newest log entries are shown. /// </summary> /// <param name="drawingContext">The drawing instructions for a specific element. This context is provided to the layout system.</param> protected override void OnRender(System.Windows.Media.DrawingContext drawingContext) { LogTextBox.ScrollToEnd(); base.OnRender(drawingContext); }
private void WrapTextMenuItem_Checked(object sender, RoutedEventArgs e) { LogTextBox.TextWrapping = WrapTextMenuItem.IsChecked ? TextWrapping.Wrap : TextWrapping.NoWrap; LogTextBox.ScrollToEnd(); }
private void Log(string message) { Dispatcher.Invoke(() => { LogTextBox.AppendText($"{DateTime.Now:yyyy/MM/dd HH:mm:ss.fff} | {message}\n"); LogTextBox.ScrollToEnd(); }); }
private void LogTextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e) { LogTextBox.ScrollToEnd(); }
private void LogTextBox_OnTextChanged(object sender, TextChangedEventArgs e) { Dispatcher.Invoke(() => LogTextBox.ScrollToEnd(), DispatcherPriority.ApplicationIdle); }
/// <summary> /// Append a text line with specified color. /// </summary> /// <param name="text"></param> /// <param name="color"></param> private void AppendColorLine(string text, Color color) { LogTextBox.AppendColoredText(text, color); LogTextBox.ScrollToEnd(); }