-
Notifications
You must be signed in to change notification settings - Fork 0
/
Program.cs
72 lines (57 loc) · 1.71 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using Serilog;
Log.Logger = new LoggerConfiguration()
.WriteTo.Console()
.CreateBootstrapLogger();
Log.Information("Starting up");
try
{
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddEnvironmentVariables();
builder.Host.UseSerilog((hostContext, loggerConfiguration) =>
loggerConfiguration.ReadFrom.Configuration(hostContext.Configuration)
);
builder.Services.AddScoped<SomeService>();
var app = builder.Build();
app.UseSerilogRequestLogging();
app.MapGet("/", (SomeService svc) =>
{
var customerId = Guid.NewGuid();
app.Logger.LogInformation("Received request {CorrelationId} for {CustomerId}", Guid.NewGuid(), customerId);
svc.DoWork(customerId);
return "Hello World!";
});
app.MapGet("/inter", (SomeService svc) =>
{
var customerId = Guid.NewGuid();
app.Logger.LogInformation($"Received request {Guid.NewGuid()} for {customerId}");
svc.DoWorkButInterpolate(customerId);
return "Hello World!";
});
app.MapGet("/oops", new Func<string>(() => throw new InvalidOperationException("Oops!")));
app.Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "Unhandled exception");
}
finally
{
Log.Information("Shut down complete");
Log.CloseAndFlush();
}
public class SomeService
{
public SomeService(ILogger<SomeService> logger)
{
Logger = logger;
}
public ILogger<SomeService> Logger { get; }
public void DoWork(Guid customerId)
{
Logger.LogInformation("Doing work for {CustomerId}", customerId);
}
public void DoWorkButInterpolate(Guid customerId)
{
Logger.LogInformation($"Doing work for {customerId}");
}
}