Logging · How it works
1 min readRapid overview
How it works
Configuration Example (Minimal API)
var builder = WebApplication.CreateBuilder(args);
builder.Logging.ClearProviders();
builder.Logging.AddConsole(options =>
{
options.IncludeScopes = true;
options.TimestampFormat = "yyyy-MM-ddTHH:mm:ss.fffZ ";
});
builder.Services.AddOpenTelemetry()
.WithTracing(trace => trace
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddSource("Orders"))
.WithMetrics(metrics => metrics
.AddRuntimeInstrumentation())
.WithLogging(logging => logging
.AddConsoleExporter());
var app = builder.Build();
app.MapPost("/orders", async (
ILogger<Program> logger,
HttpContext context) =>
{
using var scope = logger.BeginScope(new
{
CorrelationId = context.TraceIdentifier,
Tenant = context.Request.Headers["X-Tenant"].FirstOrDefault() ?? "unknown"
});
logger.LogInformation("Received order request");
// Simulate work
await Task.Delay(10);
logger.LogInformation("Order accepted at {AcceptedAt}", DateTimeOffset.UtcNow);
return Results.Accepted();
});
app.Run();