The first part of logging I have polished up Microsoft.Extensions.Logging is structured data support with a Syslog Structured Data package that contains a component which will render as syslog RFC 5424 structured data.
To use the Syslog StructuredData component, install the nuget package:
dotnet add package Syslog.StructuredData
You can then use the structured data via BeginScope()
on an ILogger
:
using (_logger.BeginScope(new StructuredData
{
Id = "origin", ["ip"] = ipAddress
}))
{
// ...
}
For default logger providers, that don't understand structured data, the ToString()
method on the StructuredData
object will render out the data in RFC 5424 format. This format can still be easily parsed by log analyzers, although the surrounding context won't be a syslog message.