feat(telemetry.serilog): AddZbSerilog bootstrap + identity enrichers

This commit is contained in:
Joseph Doherty
2026-06-01 07:38:07 -04:00
parent 3e4d4369bf
commit 1344f249d0
4 changed files with 211 additions and 0 deletions
@@ -0,0 +1,46 @@
using Serilog;
using Serilog.Events;
using Serilog.Sinks.InMemory;
using ZB.MOM.WW.Telemetry;
using ZB.MOM.WW.Telemetry.Serilog;
namespace ZB.MOM.WW.Telemetry.Serilog.Tests;
public sealed class EnricherTests
{
private static string ScalarValue(LogEvent logEvent, string propertyName)
{
Assert.True(
logEvent.Properties.TryGetValue(propertyName, out var value),
$"expected property '{propertyName}' to be present");
var scalar = Assert.IsType<ScalarValue>(value);
return scalar.Value?.ToString() ?? "";
}
[Fact]
public void Identity_enrichers_stamp_SiteId_NodeRole_and_NodeHostname()
{
var sink = new InMemorySink();
var options = new ZbTelemetryOptions
{
ServiceName = "otopcua",
SiteId = "s1",
NodeRole = "Central",
};
var loggerConfig = new LoggerConfiguration();
ZbSerilogConfig.Apply(loggerConfig, options);
using var logger = loggerConfig
.WriteTo.Sink(sink)
.CreateLogger();
logger.Information("hello");
var logEvent = Assert.Single(sink.LogEvents);
Assert.Equal("s1", ScalarValue(logEvent, ZbLogEnricherNames.SiteId));
Assert.Equal("Central", ScalarValue(logEvent, ZbLogEnricherNames.NodeRole));
Assert.Equal(
Environment.MachineName,
ScalarValue(logEvent, ZbLogEnricherNames.NodeHostname));
}
}