fix: update logging format to include key

This commit is contained in:
Andrew Welker
2024-03-08 08:47:43 -06:00
parent bf7b1f4b58
commit ada8b7e162
3 changed files with 21 additions and 17 deletions

1
.gitignore vendored
View File

@@ -396,3 +396,4 @@ FodyWeavers.xsd
# JetBrains Rider # JetBrains Rider
*.sln.iml *.sln.iml
*.projectinfo

View File

@@ -24,11 +24,11 @@ namespace PepperDash.Core
private static Dictionary<uint, LogEventLevel> _logLevels = new Dictionary<uint, LogEventLevel>() private static Dictionary<uint, LogEventLevel> _logLevels = new Dictionary<uint, LogEventLevel>()
{ {
{0, LogEventLevel.Information }, {0, LogEventLevel.Information },
{1, LogEventLevel.Warning }, {3, LogEventLevel.Warning },
{2, LogEventLevel.Error }, {4, LogEventLevel.Error },
{3, LogEventLevel.Fatal }, {5, LogEventLevel.Fatal },
{4, LogEventLevel.Debug }, {1, LogEventLevel.Debug },
{5, LogEventLevel.Verbose }, {2, LogEventLevel.Verbose },
}; };
private static Logger _logger; private static Logger _logger;
@@ -104,7 +104,7 @@ namespace PepperDash.Core
_consoleLoggingLevelSwitch = new LoggingLevelSwitch(initialMinimumLevel: LogEventLevel.Information); _consoleLoggingLevelSwitch = new LoggingLevelSwitch(initialMinimumLevel: LogEventLevel.Information);
_consoleLoggingLevelSwitch.MinimumLevelChanged += (sender, args) => _consoleLoggingLevelSwitch.MinimumLevelChanged += (sender, args) =>
{ {
Debug.Console(0, "Console debug level set to {0}", _consoleLoggingLevelSwitch.MinimumLevel); Console(0, "Console debug level set to {0}", _consoleLoggingLevelSwitch.MinimumLevel);
}; };
_websocketLoggingLevelSwitch = new LoggingLevelSwitch(initialMinimumLevel: LogEventLevel.Verbose); _websocketLoggingLevelSwitch = new LoggingLevelSwitch(initialMinimumLevel: LogEventLevel.Verbose);
_websocketSink = new DebugWebsocketSink(new JsonFormatter(renderMessage: true)); _websocketSink = new DebugWebsocketSink(new JsonFormatter(renderMessage: true));
@@ -116,7 +116,7 @@ namespace PepperDash.Core
.WriteTo.Sink(_websocketSink, levelSwitch: _websocketLoggingLevelSwitch) .WriteTo.Sink(_websocketSink, levelSwitch: _websocketLoggingLevelSwitch)
.WriteTo.File(@"\user\debug\global-log-{Date}.txt" .WriteTo.File(@"\user\debug\global-log-{Date}.txt"
, rollingInterval: RollingInterval.Day , rollingInterval: RollingInterval.Day
, restrictedToMinimumLevel: Serilog.Events.LogEventLevel.Debug) , restrictedToMinimumLevel: LogEventLevel.Debug)
.CreateLogger(); .CreateLogger();
// Get the assembly version and print it to console and the log // Get the assembly version and print it to console and the log
@@ -455,6 +455,7 @@ namespace PepperDash.Core
if (!_logLevels.ContainsKey(level)) return; if (!_logLevels.ContainsKey(level)) return;
var logLevel = _logLevels[level]; var logLevel = _logLevels[level];
_logger.Write(logLevel, format, items); _logger.Write(logLevel, format, items);
} }
@@ -464,8 +465,8 @@ namespace PepperDash.Core
var logLevel = _logLevels[level]; var logLevel = _logLevels[level];
var log = _logger.ForContext("Key", keyed.Key); var logger = _logger.ForContext("Key", keyed.Key);
log.Write(logLevel, format, items); logger.Write(logLevel, format, items);
} }

View File

@@ -22,17 +22,19 @@ namespace PepperDash.Core
{ {
if (!Debug.IsRunningOnAppliance) return; if (!Debug.IsRunningOnAppliance) return;
CrestronConsole.PrintLine("[{0}][App {1}][Lvl {2}]: {3}", logEvent.Timestamp, string message = $"[{logEvent.Timestamp}][{logEvent.Level}][App {InitialParametersClass.ApplicationNumber}]{logEvent.RenderMessage()}";
InitialParametersClass.ApplicationNumber,
logEvent.Level, if(logEvent.Properties.TryGetValue("Key",out var value) && value is ScalarValue sv && sv.Value is string rawValue)
logEvent.RenderMessage()); {
message = $"[{logEvent.Timestamp}][{logEvent.Level}][App {InitialParametersClass.ApplicationNumber}][{rawValue}]: {logEvent.RenderMessage()}";
}
CrestronConsole.PrintLine(message);
} }
public DebugConsoleSink(ITextFormatter formatProvider) public DebugConsoleSink(ITextFormatter formatProvider )
{ {
_textFormatter = formatProvider ?? new JsonFormatter(); _textFormatter = formatProvider ?? new JsonFormatter();
} }
} }