Как внедрить NLog в DI в приложении веб-API ASP.NET Core 6 ⇐ C#
-
Anonymous
Как внедрить NLog в DI в приложении веб-API ASP.NET Core 6
У меня несколько проектов, и я хочу добавить NLog во все свои проекты, поэтому я создал один общий проект и хочу использовать его как пакет nuget в других проектах.
Я настраиваю NLog программно. Я хочу внедрить свой класс пакета в пул зависимостей как Singleton.
Вот мой общий класс пакета:
публичный класс CustomConfiguration { public LoggingConfiguration ConfigurationLogger (bool fileLogging = false) { вар конфигурации = новый LoggingConfiguration (); если (включитьFileLogging) { вар fileTarget = новый FileTarget("fileTarget"); fileTarget.FileName = "logs/log.txt"; fileTarget.Layout = "${longdate} ${level:uppercase=true} - ${message}"; config.AddTarget("файл", fileTarget); config.AddRule(LogLevel.Debug, LogLevel.Fatal, fileTarget); } вернуть конфигурацию; } } В моем файле program.cs я делаю, как показано ниже, но он не работает:
var builder = WebApplication.CreateBuilder(args); var logger = NLog.LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger(); builder.Logging.Services.AddSingleton(); builder.Logging.ClearProviders(); builder.Host.UseNLog(); logger.Info("Инициализация службы"); Это не выбор параметра, который я определил в CustomConfiguration.
У меня несколько проектов, и я хочу добавить NLog во все свои проекты, поэтому я создал один общий проект и хочу использовать его как пакет nuget в других проектах.
Я настраиваю NLog программно. Я хочу внедрить свой класс пакета в пул зависимостей как Singleton.
Вот мой общий класс пакета:
публичный класс CustomConfiguration { public LoggingConfiguration ConfigurationLogger (bool fileLogging = false) { вар конфигурации = новый LoggingConfiguration (); если (включитьFileLogging) { вар fileTarget = новый FileTarget("fileTarget"); fileTarget.FileName = "logs/log.txt"; fileTarget.Layout = "${longdate} ${level:uppercase=true} - ${message}"; config.AddTarget("файл", fileTarget); config.AddRule(LogLevel.Debug, LogLevel.Fatal, fileTarget); } вернуть конфигурацию; } } В моем файле program.cs я делаю, как показано ниже, но он не работает:
var builder = WebApplication.CreateBuilder(args); var logger = NLog.LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger(); builder.Logging.Services.AddSingleton(); builder.Logging.ClearProviders(); builder.Host.UseNLog(); logger.Info("Инициализация службы"); Это не выбор параметра, который я определил в CustomConfiguration.
Мобильная версия