maksit-lto-backup/src/MaksIT.LTO.Backup/Program.cs

36 lines
1.2 KiB
C#

using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using MaksIT.LTO.Core.Logging;
namespace MaksIT.LTO.Backup;
class Program {
public static void Main() {
// Set up configuration with reload support
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("configuration.json", optional: false, reloadOnChange: true) // Enable reload on change
.Build();
var serviceProvider = new ServiceCollection()
.Configure<Configuration>(configuration.GetSection("Configuration")) // Bind AppConfig directly
.AddSingleton(configuration) // Make IConfiguration available if needed
.AddLogging(builder =>
{
builder.AddConfiguration(configuration.GetSection("Logging"));
builder.AddConsole();
builder.AddFile(Path.Combine(Directory.GetCurrentDirectory(), "log.txt"));
})
.AddTransient<Application>()
.BuildServiceProvider();
// Get the App service and run it
var app = serviceProvider.GetRequiredService<Application>();
app.Run();
}
}