Различные компоненты из ASP.NET Core можно использовать отдельно. Таким образом, вы можете абсолютно использовать такие вещи, как Microsoft.Extensions.Logging или даже другие вещи, такие как DependencyInjection , Конфигурация или Опции отдельно, не имея фактически использовать ASP.NET Core или его WebHost.
Теперь я могу указать вам различные местоположения в источниках (например, WebHostBuilder
, WebHost
или компоновщик по умолчанию ), но войти в систему и запустить его в собственном приложении на самом деле довольно просто, поэтому вам не нужно просматривать все это.
Вместо этого просто добавьте ссылку на Microsoft.Extensions.Logging
и ваших любимых провайдеров журналов, например Microsoft.Extensions.Logging.Console
, а затем настройте фабрику регистратора и создайте регистратор:
var loggerFactory = new LoggerFactory();
loggerFactory.AddConsole();
var logger = loggerFactory.CreateLogger("categoryName");
logger.LogInformation("Whee!");
Это все, что вам нужно, чтобы регистрация работала. Конечно, теперь вам нужно создать свои собственные регистраторы и передать их туда, где вам это нужно, но у вас есть полный контроль над этим.
Если хотите, вы также можете добавить в микс внедрение зависимостей, добавив ссылку на Microsoft.Extensions.DependencyInjection
и создав набор служб:
var services = new ServiceCollection();
// add logging
services.AddLogging(loggerBuilder =>
{
loggerBuilder.AddConsole();
});
// add your services
services.AddTransient<MyService>();
// create the service provider
var serviceProvider = services.BuildServiceProvider();
// request your service and do something
var service = serviceProvider.GetService<MyService>();
service.DoSomething();
public class MyService
{
private readonly ILogger<MyService> _logger;
public MyService(ILogger<MyService> logger)
{
_logger = logger;
}
public void DoSomething()
{
_logger.LogInformation("Did something!");
}
}
И вдруг у вас работает инъекция зависимостей с регистрацией всего в несколько строк. Таким образом, вы можете настроить свою собственную среду для консольных приложений, а затем использовать эти методы для своего приложения, не полагаясь на реальные вещи ASP.NET Core.