Winify

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 42  →  ?path2? @ 43
/trunk/Winify/Utilities/LogMemorySink.cs
@@ -0,0 +1,38 @@
using System;
using System.Collections.ObjectModel;
using System.IO;
using Serilog.Core;
using Serilog.Events;
using Serilog.Formatting;
using Serilog.Formatting.Display;
 
namespace Winify
{
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();
}
}
}