2017-09-08 1 views
0

Ich habe eine Web API von dotnet core 1.1, die ILogger verwendet, um zur Konsole zu loggen. Diese Protokolle werden aufgenommen und an Blobs basierend auf (Anwendungsname)/Monat/Tag/Stunde gesendet, wenn ich die Option "Anwendungsprotokollierung (Blob)" unter "Überwachung/Diagnoseprotokolle" in der azurblauen Konsole aktiviere. Das klappt sehr gut.Azure WebJob protokolliert nicht in Blob-Speicher

Mein Webjob, der den gleichen ILogger und die gleiche Konfiguration verwendet, wird jedoch nicht in diese mm/dd/hh-Verzeichnisse ausgegeben.

Wenn ich Anwendungsprotokollierung (Dateisystem) einschalte, sehe ich meine Protokolle, aber ich würde wirklich möchten, dass sie zum selben Flecklagerort gehen, also kann ich sie in Splunk aufheben.

Wohin gehe ich falsch?

Antwort

3

Nach Ihrer Beschreibung, habe ich meine Konsolenanwendung mit dem Zielframework .NET-Core 1.1 über VS2017 wie folgt:

Nuget Pakete:

enter image description here

Program.cs

class Program 
{ 
    static void Main(string[] args) 
    { 
     ILoggerFactory loggerFactory = new LoggerFactory() 
      .AddConsole() 
      .AddDebug() 
      .AddAzureWebAppDiagnostics(); 

     ILogger<Program> logger = loggerFactory.CreateLogger<Program>(); 

     logger.LogInformation("Hello World!"); 
     logger.LogInformation("Sleeping for 5s before exit..."); 
     Thread.Sleep(5 * 1000); 
    } 
} 

Nach dem Einsatz in Azure konnte ich die Protokolle unter KU sehen DU-Konsole und die Blob-Protokolldatei wie folgt:

enter image description here

enter image description here

+0

ich durch die Übung ging wieder, durch Ihr Beispiel inspiriert und habe es funktioniert. Vielen Dank! – akaioi