Ejemplo n.º 1
0
        Paragraph GetParagraphForLog(LogEntity log)
        {
            var line = new Run($"[{log.Time}] [{log.App}] [{log.Logger}] [{log.Thread}] {log.Content}");

            switch (log.Level)
            {
            case "FATAL":
                line.Foreground = new SolidColorBrush(Colors.Red);
                line.Background = new SolidColorBrush(Colors.Black);
                break;

            case "ERROR":
                line.Foreground = new SolidColorBrush(Colors.Red);
                break;

            case "WARN":
                line.Foreground = new SolidColorBrush(Color.FromRgb(0xff, 0x5c, 0x00));
                break;

            case "INFO":
                line.Foreground = new SolidColorBrush(Colors.DodgerBlue);
                break;

            case "DEBUG":
                line.Foreground = new SolidColorBrush(Colors.Gray);
                break;
            }
            if (!DateTime.TryParse(log.Time.Replace(",", "."), out var logAt))
            {
                logAt = DateTime.Now;
            }
            return(new Paragraph(line)
            {
                Tag = logAt
            });
        }
Ejemplo n.º 2
0
        void ShowLog(LogEntity log)
        {
            if (log == null)
            {
                return;
            }
            _allLogs.Add(log);

            if (_logViewModel.ApplicationNames.All(app => app.AppName != log.App))
            {
                _logViewModel.ApplicationNames.Add(new AppInfo
                {
                    IsChecked = _logViewModel.AllAppInfo.IsChecked,
                    AppName   = log.App
                });
            }
            if (_logViewModel.ThreadIds.All(t => t.ThreadId != log.Thread))
            {
                var needAdd   = true;
                var newThread = new ThreadInfo()
                {
                    AppName   = log.App,
                    IsChecked = _logViewModel.AllThreadInfo.IsChecked,
                    ThreadId  = log.Thread
                };
                for (var i = 0; i < _logViewModel.ThreadIds.Count; i++)
                {
                    if (_logViewModel.ThreadIds[i].AppName != newThread.AppName)
                    {
                        continue;
                    }
                    _logViewModel.ThreadIds.Insert(i + 1, newThread);
                    needAdd = false;
                    break;
                }
                if (needAdd)
                {
                    _logViewModel.ThreadIds.Add(newThread);
                }
            }
            if (_logViewModel.Loggers.All(n => n.Name != log.Logger))
            {
                var newLogger = new LogNameInfo()
                {
                    AppName   = log.App,
                    IsChecked = _logViewModel.AllLogName.IsChecked,
                    Name      = log.Logger
                };
                var needAdd = true;
                for (var i = 0; i < _logViewModel.Loggers.Count; i++)
                {
                    if (_logViewModel.Loggers[i].AppName != newLogger.AppName)
                    {
                        continue;
                    }
                    _logViewModel.Loggers.Insert(i + 1, newLogger);
                    needAdd = false;
                    break;
                }
                if (needAdd)
                {
                    _logViewModel.Loggers.Add(newLogger);
                }
            }
            _logViewModel.Total++;
            switch (log.Level)
            {
            case "FATAL":
                _logViewModel.Fatal++;
                break;

            case "ERROR":
                _logViewModel.Error++;
                break;

            case "WARN":
                _logViewModel.Warn++;
                break;

            case "INFO":
                _logViewModel.Info++;
                break;

            case "DEBUG":
                _logViewModel.Debug++;
                break;
            }
            if (!CanShowThisLog(log))
            {
                return;
            }

            if (_lastLogId != 0 && log.LogId > _lastLogId)
            {
                return;
            }
            ShowLogItem(log);
        }