Я внедрил внедрение зависимостей в свое приложение. И я настраиваю службы следующим образом.
IConfiguration configuration = context.Configuration;
services.AddDbContext<ApplicationDbContext>(options =>
{
options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
});
services.ConfigureRailIncApi(configuration);
services.Configure<EmailSettings>(configuration.GetSection("EmailSettings"));
services.AddSingleton(configuration);
services.AddSingleton(Logger);
services.AddSingleton<Application>();
services.AddSingleton<ServiceManager>();
Все это работает нормально, за исключением того, что теперь платформа регистрируется в консоли, включая содержимое любых запросов, отправленных в базу данных.
Каким-то образом внутреннее ведение журнала было включено, но я не вижу, где я его включил.
Как я могу предотвратить .СЕТЬ от входа на экран?
Примечание: Logger
является экземпляром моего собственного класса ведения журнала ConsoleLogger
. Этот класс не реализует ILogger
или используйте что-нибудь еще из .NET. Это просто пользовательский класс, который также входит в консоль и файл. Ведение журнала с помощью этого регистратора работает нормально. И я подтвердил это .Сетевые журналы не отправляются в этот класс.
Обновление:
Вот мой код, который настраивает хост.
public void Configure(string[] args, Action< HostBuilderContext, IServiceCollection> configureServices, Action<IHostBuilder> configureHost)
{
IHostBuilder hostBuilder = Host.CreateDefaultBuilder(args);
hostBuilder.ConfigureServices((context, services) =>
{
services.AddSingleton(this);
configureServices(context, services);
});
configureHost(hostBuilder);
AppHost = hostBuilder.Build();
}
И вот код, который его вызывает.
ApplicationServices appServices = new();
appServices.Configure(args, (context, services) =>
{
IConfiguration configuration = context.Configuration;
services.AddDbContext<ApplicationDbContext>(options =>
{
options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
});
services.ConfigureRailIncApi(configuration);
services.Configure<EmailSettings>(configuration.GetSection("EmailSettings"));
services.AddSingleton(configuration);
services.AddSingleton(Logger);
services.AddSingleton<Application>();
services.AddSingleton<ServiceManager>();
},
builder =>
{
});
ConfigureLogging
предположил, чтоlogging
параметр имел типHostBuilderContext
но я смог заставить это бытьILoggingBuilder
. Спасибо за вашу помощь.