public UILog() { InitializeComponent(); target = MateriaLogLevel.All; MateriaLogTarget.OnLogWrite += MateriaLogTarget_OnLogWrite; }
private void UpdateTargetLevel() { target = MateriaLogLevel.All; if (chkInfo.IsChecked == true) { target |= MateriaLogLevel.Info; } if (chkDebug.IsChecked == true) { target |= MateriaLogLevel.Debug; } if (chkError.IsChecked == true) { target |= MateriaLogLevel.Error; } target |= MateriaLogLevel.Warn; }
protected override void Write(LogEventInfo logEvent) { string msg = Layout.Render(logEvent).Replace("|", " "); if (OnLogWrite != null) { MateriaLogLevel level = MateriaLogLevel.All; if (logEvent.Level.Ordinal == 0) { level = MateriaLogLevel.Trace; } else if (logEvent.Level.Ordinal == 1) { level = MateriaLogLevel.Debug; } else if (logEvent.Level.Ordinal == 2) { level = MateriaLogLevel.Info; } else if (logEvent.Level.Ordinal == 3) { level = MateriaLogLevel.Warn; } else if (logEvent.Level.Ordinal == 4) { level = MateriaLogLevel.Error; } else if (logEvent.Level.Ordinal == 5) { level = MateriaLogLevel.Fatal; } if (OnLogWrite != null) { OnLogWrite.Invoke(level, msg); } } }
private void MateriaLogTarget_OnLogWrite(MateriaLogLevel level, string msg) { if ((target & level) != 0 || target == MateriaLogLevel.All) { var p = new Paragraph(new Run(msg)); switch (level) { case MateriaLogLevel.Error: p.Foreground = new SolidColorBrush(Colors.Red); break; case MateriaLogLevel.Info: p.Foreground = new SolidColorBrush(Colors.LightBlue); break; case MateriaLogLevel.Warn: p.Foreground = new SolidColorBrush(Colors.Yellow); break; default: break; } Log.Document.Blocks.Add(p); if (Log.Document.Blocks.Count > MaxBlockCount) { var blocks = Log.Document.Blocks.ToList(); blocks.RemoveRange(0, 256); Log.Document.Blocks.Clear(); Log.Document.Blocks.AddRange(blocks); } Log.ScrollToEnd(); } }