Add custom properties to Serilog
This is as simple as:
Log.ForContext("BirthDate", person.BirthDate)
.Information("New user: {FirstName:l} {LastName:l}",
person.FirstName, person.LastName);
You can actually do this in a few different ways. In your case, the first way is probably the best:
Log.ForContext("BirthDate", person.BirthDate)
.Information("New user: {FirstName:l} {LastName:l}",
person.FirstName, person.LastName);
But you can also use the LogContext
in other scenarios:
Log.Logger = new LoggerConfiguration()
// Enrich all log entries with properties from LogContext
.Enrich.FromLogContext();
using (LogContext.PushProperty("BirthDate", person.BirthDate))
{
Log.Information("New user: {FirstName:l} {LastName:l}",
person.FirstName, person.LastName);
}
Or, in the case where you want to log a "constant" property, you can add it like this:
Log.Logger = new LoggerConfiguration()
// Enrich all log entries with property
.Enrich.WithProperty("Application", "My Application");
See Context and correlation – structured logging concepts in .NET (5) for more information.