J'ai une application Azure Function qui a configuré Application Insights. Mes fonctions contiennent des messages LogTrace()
mais ils ne sont pas capturés par AppInsights. Dois-je configurer un niveau de journalisation minimum quelque part?
Veuillez consulter ceci article sur la façon de définir le niveau de journalisation pour la fonction v1 ou v2.
Dans le fichier Host.json
, pour la "Fonction" déposée, définissez sa valeur sur Trace. LogTrace () peut ensuite être connecté aux informations de l'application.
Échantillon Host.json
pour la fonction Azure v2, qui peut consigner les messages de trace dans Application Insights:
{
"version": "2.0",
"logging": {
"fileLoggingMode": "always",
"logLevel": {
"default": "Information",
"Host.Results": "Error",
"Function": "Trace",
"Host.Aggregator": "Trace"
}
}
}
Et si vous publiez votre application de fonction avec Visual Studio, vous pouvez modifier votre fichier Host.json comme indiqué ci-dessus avant la publication.
Et si vous souhaitez modifier le niveau de journalisation dans le portail Azure, procédez comme suit:
Dans le portail Azure, accédez à votre application de fonction -> dans les paramètres de l'application de fonction, assurez-vous d'activer la lecture/écriture, puis modifiez le niveau de journal pour tracer dans le Host.json
.
Pour ajouter à l'excellente réponse de @Ivan Yang, vous pouvez spécifier un niveau de journalisation minimum par fonction dans la v2 d'Azure Functions. (Je n'ai pas vérifié si cela fonctionne/ne fonctionne pas en v1) En utilisant son exemple Host.json
:
{
"version": "2.0",
"logging": {
"fileLoggingMode": "always",
"logLevel": {
"default": "Information",
"Host.Results": "Error",
"Function": "Trace",
"Function.FunctionA": "Warning",
"Host.Aggregator": "Trace"
}
}
}
Function.FunctionA
suppose que vous avez une fonction nommée (via l'attribut FunctionName
) "FunctionA", par exemple:
[FunctionName("FunctionA")]
public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "")]HttpRequest req, ILogger log)
{
...function code here
}
Ainsi, quelle que soit la valeur que vous spécifiez dans l'attribut FunctionName
, vous pouvez utiliser pour définir explicitement un niveau de journal minimum juste pour cette fonction. Dans le Host.json
exemple ci-dessus, toutes les fonctions, par défaut, auront un niveau de journal minimum de Trace
tandis que FunctionA aura un niveau de journal minimum de Warning
.