我已经实现依赖注射在我的应用程序。 我配置的服务如下。
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
或者使用其他任何东西。网。 这是一个简单的定义类,还记录到控制台和一个文件。 记录这个记录仪的工作正常。 和我已经确认了.净记录是不被发送到此类中。
更新:
这是我的代码,用于配置的主机。
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
. 谢谢你的帮助。