J'ai mis en œuvre l'injection de dépendance dans mon application. Et je services de configuration comme suit.
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>();
Tout cela fonctionne très bien sauf que maintenant le cadre de la journalisation de la console, y compris le contenu de toutes les requêtes adressées à la base de données.
D'une certaine manière à l'intérieur de la journalisation a été activée, mais je ne vois pas où je l'ai activé.
Comment puis-je empêcher .NET de l'exploitation forestière à l'écran?
Note: Logger
est une instance de ma classe de log ConsoleLogger
. Cette classe ne comprend pas mettre en œuvre ILogger
ou utiliser tout autre chose .NET. C'est simplement une classe personnalisée qui ouvre également à la console et un fichier. Enregistrement à partir de cet enregistreur fonctionne bien. Et j'ai confirmé l' .NET, les journaux ne sont pas envoyés à cette classe.
Mise à jour:
Voici mon code qui permet de configurer l'hôte.
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();
}
Et voici le code qui l'appelle.
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
supposé l'logging
le paramètre de typeHostBuilderContext
mais j'ai été capable de le forcer à êtreILoggingBuilder
. Merci pour votre aide.