コード例 #1
0
        public UILog()
        {
            InitializeComponent();
            target = MateriaLogLevel.All;

            MateriaLogTarget.OnLogWrite += MateriaLogTarget_OnLogWrite;
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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);
                }
            }
        }
コード例 #4
0
        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();
            }
        }