using Microsoft.Extensions.Logging;
using System.Collections.Generic;
using System.Diagnostics;
static void Main(string[] args)
using ILoggerFactory factory = LoggerFactory.Create(builder =>
builder.AddFilter("ZeroC.Ice", LogLevel.Trace);
builder.AddJsonConsole(configure =>
configure.IncludeScopes = true;
configure.TimestampFormat = "yyyy-MM-dd HH:mm:ss.F ";
configure.JsonWriterOptions = new System.Text.Json.JsonWriterOptions()
builder.Configure(options => options.ActivityTrackingOptions =
ActivityTrackingOptions.TraceId |
ActivityTrackingOptions.SpanId |
ActivityTrackingOptions.ParentId
using var parent = new Activity("main");
Activity.Current = parent;
ILogger logger = factory.CreateLogger("ZeroC.Ice");
using (logger.BeginScope("Request {Context}", new Dictionary<string, string>()
{"endpoint", "ice+tcp://localhost:10000/hello" },
using var requestActivity = new Activity("Request");
using (logger.BeginScope("Request Invocation {Context}", new Dictionary<string, string>()
{ "local address", "[::1]:56914"},
{ "remote address", "[::1]:10000" }
logger.LogInformation("Transport: sent {BytesSent} via {TransportName}", 45, "tcp");
logger.LogInformation("Transport: received {BytesSent} via {TransportName}", 45, "tcp");
logger.LogInformation("Request send ok");