Привет!
Вот мой вариант подключения Nlog к такому сервису на .NET 6
Сам процесс подключения и использования его через DI дальше брал вот с этого
примера
Возможно я пропустил пару "скобочек", но вот так выглядит
Program.cs:
IHost host = Host.CreateDefaultBuilder(args)
.ConfigureHostConfiguration(builder =>
{
builder.SetBasePath(System.IO.Directory.GetCurrentDirectory());
})
.ConfigureServices(services =>
{
services.AddHostedService<Worker>();
var config = new ConfigurationBuilder()
.SetBasePath(System.IO.Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
services.AddSingleton<IRunner, Runner>()
.AddLogging(loggingBuilder =>
{
// configure Logging with NLog
loggingBuilder.ClearProviders();
loggingBuilder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Debug);
loggingBuilder.AddNLog(config);
});
services.AddSingleton<IEmailService, EmailService>();
services.AddSingleton<IClientSmtp, SmtpClientGoogleAsync>();
services.AddSingleton<ICheckingSubEmailService, CheckingSubEmailService>();
})
.UseWindowsService()
.Build();
После в такого инстанса в документации есть часть где создается class Running, там ты просто закинь POST запрос в свою базу. Все это делается на DI не сильно сложно.