Установив
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console()
.CreateLogger();
и
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.UseSerilog(); // <-- Add this line;
}
Вы настраиваете свой регистратор «глобально», и он доступен во всем приложении без необходимости внедрения.
В любом другом классе проекта или проектов, ссылающихся на него, вы можете войти, используя:
Log.Error("");
, используя настройки регистратора, которые вы установили при запуске.
Отвечая на ваш вопрос, если он можно ввести регистратор Serilog, ответ отрицательный. Вы не можете получить доступ к Serilog через DI в Net Core. Это статистика c. Вы могли бы, вероятно, взломать его, если хотите, что я бы не рекомендовал. Вы можете найти несколько примеров здесь .