mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-01-26 10:54:59 +00:00
65 lines
1.9 KiB
C#
65 lines
1.9 KiB
C#
using Crestron.SimplSharp;
|
|
using Serilog.Configuration;
|
|
using Serilog;
|
|
using Serilog.Core;
|
|
using Serilog.Events;
|
|
using Serilog.Formatting;
|
|
using Serilog.Formatting.Json;
|
|
using System.IO;
|
|
using System.Text;
|
|
|
|
|
|
namespace PepperDash.Core
|
|
{
|
|
/// <summary>
|
|
/// Represents a DebugConsoleSink
|
|
/// </summary>
|
|
public class DebugConsoleSink : ILogEventSink
|
|
{
|
|
private readonly ITextFormatter _textFormatter;
|
|
|
|
/// <summary>
|
|
/// Emit method
|
|
/// </summary>
|
|
public void Emit(LogEvent logEvent)
|
|
{
|
|
if (!Debug.IsRunningOnAppliance) return;
|
|
|
|
/*string message = $"[{logEvent.Timestamp}][{logEvent.Level}][App {InitialParametersClass.ApplicationNumber}]{logEvent.RenderMessage()}";
|
|
|
|
if(logEvent.Properties.TryGetValue("Key",out var value) && value is ScalarValue sv && sv.Value is string rawValue)
|
|
{
|
|
message = $"[{logEvent.Timestamp}][{logEvent.Level}][App {InitialParametersClass.ApplicationNumber}][{rawValue,3}]: {logEvent.RenderMessage()}";
|
|
}*/
|
|
|
|
var buffer = new StringWriter(new StringBuilder(256));
|
|
|
|
_textFormatter.Format(logEvent, buffer);
|
|
|
|
var message = buffer.ToString();
|
|
|
|
CrestronConsole.PrintLine(message);
|
|
}
|
|
|
|
public DebugConsoleSink(ITextFormatter formatProvider )
|
|
{
|
|
_textFormatter = formatProvider ?? new JsonFormatter();
|
|
}
|
|
|
|
}
|
|
|
|
public static class DebugConsoleSinkExtensions
|
|
{
|
|
/// <summary>
|
|
/// DebugConsoleSink method
|
|
/// </summary>
|
|
public static LoggerConfiguration DebugConsoleSink(
|
|
this LoggerSinkConfiguration loggerConfiguration,
|
|
ITextFormatter formatProvider = null)
|
|
{
|
|
return loggerConfiguration.Sink(new DebugConsoleSink(formatProvider));
|
|
}
|
|
}
|
|
|
|
}
|