Design and Implement Logging
Some of the components that would make a comprehensive logging solution are:
- A logging framework
- A logging aggregator
- A crash reporter
In this article, I will look at what they are and some of the solutions provided by Microsoft.
Assess and Configure a Log Framework
A logging framework simplifies creating logs.
It generally provides an easy way to configure:
- A set of outputs for the log (eg. Console, Files, Databases, …)
- Some levels that allow specifying how important the logged information is
- A threshold, typically configurable without rebuilding, that will set the minimum level required for a log to be sent to the output
Configure Logging in .NET Core
.NET Core allows configuring logging in a file called the appsettings.json in a section named Logging.
"Logging": {
"ProviderName": {
"Category A": "Min Level A",
"Category B": "Min Level B",
"Category C": "Min Level C"
}
}
Categories follow a hierarchical structure. For instance “Microsoft.Hosting.Lifetime” is a specialization of “Microsoft.Hosting”. Specifying a level for “Microsoft.Hosting.Lifetime” would override any level set for “Microsoft.Hosting” only for “Microsoft.Hosting.Lifetime”.