2017-08-19 1 views
1

J'utilise l'option ILogger relativement récente (par rapport à TraceWriter) dans les fonctions Azure et j'essaie de comprendre comment les journaux sont capturés.comment utiliser la journalisation structurée dans les fonctions Azure

Voilà ma fonction:

public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req, ILogger log) 
    { 
     log.LogTrace("Function 1 {level}", "trace"); 
     log.LogWarning("Function 1 {level}", "warning"); 
     log.LogError("Function 1 {level}", "error"); 

     return req.CreateResponse(HttpStatusCode.OK, "Success!!!!"); 
    } 

Quand je regarde les journaux du serveur, le répertoire LogFiles a une hiérarchie.

enter image description here

Le fichier jaune en surbrillance inclut mes relevés journal:

2017-08-19T13:58:31.814 Function started (Id=d40f2ca6-4cb6-4fbe-a05f-006ae3273562) 
2017-08-19T13:58:33.045 Function 1 trace 
2017-08-19T13:58:33.045 Function 1 warning 
2017-08-19T13:58:33.045 Function 1 error 
2017-08-19T13:58:33.075 Function completed (Success, Id=d40f2ca6-4cb6-4fbe-a05f-006ae3273562, Duration=1259ms) 

Le répertoire structuré ne contient rien ici, mais il semble avoir différents « codeddiagnostic » consigner les instructions dans le répertoire Mes applications réelles de fonction.

À quoi dois-je m'attendre ici? En fin de compte, je voudrais avoir un seul puits pour la journalisation de tous mes composants d'application et profiter de la consignation structurée à travers le conseil.

Répondre

1

J'ai eu la même question. L'enregistreur de fichier journal ne respecte pas vraiment l'exploitation forestière structurée, mais si vous utilisez AppInsights pour les fonctions Azure il en fait ajouter des propriétés personnalisées pour votre journal structuré

J'ai eu une conversation à ce sujet ici https://github.com/Azure/azure-webjobs-sdk-script/issues/1675