Zzz – Rev 1

Subversion Repositories:
Rev:
using System;
using System.Collections.ObjectModel;
using System.IO;
using Serilog.Core;
using Serilog.Events;
using Serilog.Formatting;
using Serilog.Formatting.Display;

namespace Zzz.Utilities
{
    public class LogMemorySink : ILogEventSink
    {
        private readonly ITextFormatter _textFormatter =
            new MessageTemplateTextFormatter(
                "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:l}{NewLine}{Exception}");

        public ObservableCollection<string> Events { get; } = new ObservableCollection<string>();

        public void Emit(LogEvent logEvent)
        {
            if (logEvent == null)
            {
                throw new ArgumentNullException(nameof(logEvent));
            }

            using (var stringWriter = new StringWriter())
            {
                _textFormatter.Format(logEvent, stringWriter);
                Events.Add(stringWriter.ToString());
            }
        }

        public void Clear()
        {
            Events.Clear();
        }
    }
}

Generated by GNU Enscript 1.6.5.90.