Nlog
Apparence
Links
Console project
Nuget packages
- NLog.Extensions.Logging
- Microsoft.Extensions.DependencyInjection
- Microsoft.Extensions.Configuration.Json
Config file
![]() |
Be sure to have the config file copied to the output folder while building. |
appsettings.json |
Program
Program.cs |
var logger = LogManager.GetCurrentClassLogger();
try
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.Build();
// to log in this class only
LogManager.Configuration = new NLogLoggingConfiguration(config.GetSection("NLog"));
using var servicesProvider = new ServiceCollection()
.AddTransient<MyApp>()
.AddLogging(loggingBuilder =>
{
// configure Logging with NLog
loggingBuilder.ClearProviders();
loggingBuilder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
loggingBuilder.AddNLog(config);
}).BuildServiceProvider();
var myApp = servicesProvider.GetRequiredService<MyApp>();
myApp.Run();
}
catch (Exception ex)
{
// NLog: catch any exception and log it.
logger.Error(ex, "Stopped program because of exception");
throw;
}
finally
{
// Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux)
LogManager.Shutdown();
}
|