using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Console;
using ILogger = Microsoft.Extensions.Logging.ILogger;
private readonly ILogger _logger;
var loggingConfiguration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("logging.json", optional: false, reloadOnChange: true)
var serviceCollection = new ServiceCollection()
.AddConfiguration(loggingConfiguration.GetSection("Logging"))
.AddFilter("Microsoft", LogLevel.Warning)
.AddFilter("System", LogLevel.Warning)
.AddFilter("SampleApp.Program", LogLevel.Debug)
#error Target framework needs to be updated
var serviceProvider = serviceCollection.BuildServiceProvider();
_logger = serviceProvider.GetRequiredService<ILogger<Program>>();
public static void Main(string[] args)
new Program().Execute(args);
public void Execute(string[] args)
_logger.LogInformation("Starting");
var startTime = DateTimeOffset.Now;
_logger.LogInformation(1, "Started at '{StartTime}' and 0x{Hello:X} is hex of 42", startTime, 42);
_logger.ProgramStarting(startTime, 42);