Comment utiliser la nouvelle injection de dépendances pour injecter un ILogger dans une Azure Function en utilisant IWebJobsStartup ?
Source : Stack Overflow [azure]
Comment utiliser la nouvelle injection de dépendances pour injecter un ILogger dans une Azure Function en utilisant IWebJobsStartup ?
Source : Stack Overflow [azure]
MISE À JOUR
Référence Utiliser l’injection de dépendances dans les Azure Functions .NET
Enregistrement des services
Pour enregistrer des services, vous pouvez créer une méthode de configuration et ajouter des composants à une instance
IFunctionsHostBuilder. L’hôte Azure Functions crée un IFunctionsHostBuilder
et le passe directement dans votre méthode configurée.
Pour enregistrer votre méthode de configuration, vous devez ajouter un attribut d’assembly
qui spécifie le type de votre méthode de configuration en utilisant
l’attribut FunctionsStartup.
Donc dans ce cas :
[assembly: FunctionsStartup(typeof(MyNamespace.Startup))]
namespace MyNamespace {
public class Startup : FunctionsStartup {
public override void Configure(IFunctionsHostBuilder builder) {
// ** Registers the ILogger instance **
builder.Services.AddLogging();
// Registers the application settings' class.
//...
//...omitted for brevity
}
}
}
ORIGINAL
Je pense que puisque vous avez accès à la collection de services, vous devriez pouvoir y ajouter la journalisation :
public void Configure(IWebJobsBuilder webJobsBuilder) {
// ** Registers the ILogger instance **
webJobsBuilder.Services.AddLogging();
//OR
//webJobsBuilder.Services.AddLogging(builder => {
// //...
//});
// Registers the application settings' class.
//...
//...removed for brevity
}
et avoir un ILoggerFactory dans le constructeur de la Function.
//...
//Ctor
public FindAccountFunction(ILoggerFactory loggerFactory, IMapper mapper, IAccountWorkflow accountWorkflow) {
m_logger = loggerFactory.CreateLogger<FindAccountFunction>();
m_mapper = mapper;
m_accountWorkflow = accountWorkflow;
}
//...