내가 구현한 종속 주입에 내 응용 프로그램이 있습니다. 나는 구성 서비스는 다음과 같습니다.
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>();
이 모든 작동을 제외하고는 이제 프레임워크가 로그를 콘솔 등의 내용을 쿼리를 전송하여 데이터베이스입니다.
어떻게든 내부 기록하도록 설정되지만 나는 보이지 않는 곳에 나가 활성화되었습니다.
을 방지할 수 있는 방법.NET 로그인하시겠습니까?
참고: Logger
인스턴스입니다 제 자신의 클래스를 로깅 ConsoleLogger
. 이 클래스를 구현하지 않는 ILogger
사용하거나 다른 아무것도니다.NET. 그것은 단순히 사용자 정의 클래스는 또한 로그를 콘솔하고 있습니다. Logging 에서 이 로거가 제대로 작동합니다. 고 확인했다.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
. 당신의 도움을 위한 감사합니다.