Winify
/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(); |
} |
} |
} |