Povolit diagnostické protokolování

Dokončeno

K dispozici je integrovaná diagnostika, která vám pomůže s laděním aplikace App Service. V této lekci se dozvíte, jak povolit protokolování diagnostiky a přidat instrumentaci do aplikace a jak získat přístup k informacím zaznamenaným v Azure.

Následující tabulka uvádí typy protokolování, podporované platformy a umístění protokolů pro přístup k informacím.

Type Platforma Místo Popis
Protokolování aplikací Windows, Linux Systém souborů služby App Service nebo objekty blob služby Azure Storage Zaznamenává zprávy vygenerované kódem vaší aplikace. Zprávy jsou generovány webovou architekturou, kterou zvolíte, nebo z kódu aplikace přímo pomocí standardního vzoru protokolování vašeho jazyka. Každé zprávě je přiřazena jedna z následujících kategorií: Kritické, Chyba, Upozornění, Informace, Ladění a Trasování.
Protokolování webového serveru Windows Systém souborů služby App Service nebo objekty blob služby Azure Storage Nezpracovaná data požadavku HTTP ve formátu rozšířeného protokolu W3C Každá zpráva protokolu obsahuje data, jako je metoda HTTP, identifikátor URI prostředku, IP adresa klienta, port klienta, uživatelský agent, kód odpovědi atd.
Podrobné protokolování chyb Windows Systém souborů služby App Service Kopie chybových stránek .html , které by byly odeslány do klientského prohlížeče. Z bezpečnostních důvodů by se podrobné chybové stránky neměly posílat klientům v produkčním prostředí, ale App Service může tuto chybovou stránku uložit pokaždé, když dojde k chybě aplikace s kódem HTTP 400 nebo vyšším.
Trasování neúspěšných požadavků Windows Systém souborů služby App Service Podrobné informace o trasování neúspěšných požadavků, včetně trasování komponent služby IIS používaných ke zpracování požadavku a času potřebného v jednotlivých komponentách. Jedna složka se vygeneruje pro každý neúspěšný požadavek, který obsahuje soubor protokolu XML a šablonu stylů XSL pro zobrazení souboru protokolu.
Protokolování nasazení Windows, Linux Systém souborů služby App Service Pomáhá určit, proč nasazení selhalo. Protokolování nasazení probíhá automaticky a pro protokolování nasazení není možné konfigurovat žádná konfigurovatelná nastavení.

Povolení protokolování aplikace (Windows)

  1. Pokud chcete povolit protokolování aplikací pro aplikace pro Windows na webu Azure Portal, přejděte do aplikace a vyberte protokoly služby App Service.

  2. Vyberte Možnost Zapnuto pro protokolování aplikace (systém souborů) nebo Protokolování aplikace (objekt blob) nebo obojí. Možnost Systém souborů slouží k dočasným účelům ladění a vypne se za 12 hodin. Možnost Objekt blob je určená pro dlouhodobé protokolování a k zápisu protokolů potřebuje kontejner úložiště objektů blob.

    Poznámka:

    Pokud znovu vygenerujete přístupové klíče účtu úložiště, musíte resetovat odpovídající konfiguraci protokolování, aby se používaly aktualizované přístupové klíče. Pokud to chcete udělat, vypněte funkci protokolování a pak znovu zapněte.

  3. Můžete také nastavit úroveň podrobností zahrnutých v protokolu, jak je znázorněno v následující tabulce.

    Level Zahrnuté kategorie
    Zakázáno Nic
    Chyba Chyba, kritická
    Upozornění Upozornění, chyba, kritické
    Informace Informace, upozornění, chyba, kritické
    Podrobné Trasování, Ladění, Informace, Upozornění, Chyba, Kritické (všechny kategorie)
  4. Jakmile budete hotovi, vyberte Uložit.

Povolení protokolování aplikace (Linux nebo kontejner)

  1. V protokolech služby App Service nastavte možnost protokolování aplikace na systém souborů.

  2. V části Kvóta (MB) zadejte kvótu disku pro protokoly aplikace. V období uchovávání (dny) nastavte počet dnů, po které se mají protokoly uchovávat.

  3. Jakmile budete hotovi, vyberte Uložit.

Povolení protokolování webového serveru

  1. Pokud chcete protokolování webového serveru uložit do úložiště objektů blob, vyberteÚložiště a uložte protokoly do systému souborů služby App Service.

  2. V období uchovávání (dny) nastavte počet dnů, po které se mají protokoly uchovávat.

  3. Jakmile budete hotovi, vyberte Uložit.

Přidání zpráv protokolu do kódu

V kódu aplikace použijete obvyklé možnosti protokolování k odesílání zpráv protokolu do protokolů aplikace. Příklad:

  • ASP.NET aplikace mohou pomocí System.Diagnostics.Trace třídy protokolovat informace do protokolu diagnostiky aplikací. Příklad:

    System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");
    
  • Ve výchozím nastavení ASP.NET Core používá Microsoft.Extensions.Logging.AzureAppServices zprostředkovatele protokolování.

  • Aplikace Pythonu můžou pomocí balíčku OpenCensus odesílat protokoly do protokolu diagnostiky aplikací.

Protokoly datových proudů

Před streamováním protokolů v reálném čase povolte požadovaný typ protokolu. Všechny informace zapsané do souborů končících na .txt, .log nebo .htm, které jsou uložené v /LogFiles adresáři (d:/home/logfiles) se streamují službou App Service.

Poznámka:

Některé typy zápisu do vyrovnávací paměti protokolování do souboru protokolu, což může vést k tomu, že události v datovém proudu jsou mimo pořadí. Například položka protokolu aplikace, která nastane, když uživatel navštíví stránku, může být zobrazena ve streamu před odpovídající položkou protokolu HTTP pro požadavek stránky.

  • Azure Portal – Pokud chcete streamovat protokoly na webu Azure Portal, přejděte do aplikace a vyberte Stream protokolu.

  • Azure CLI – Pokud chcete streamovat protokoly živě v Cloud Shellu, použijte následující příkaz:

    az webapp log tail --name appname --resource-group myResourceGroup
    
  • Místní konzola – Pokud chcete streamovat protokoly v místní konzole, nainstalujte Azure CLI a přihlaste se ke svému účtu. Po přihlášení postupujte podle pokynů zobrazených pro Azure CLI.

Přístup k souborům protokolu

Pokud pro typ protokolu nakonfigurujete možnost objektů blob služby Azure Storage, potřebujete klientský nástroj, který funguje se službou Azure Storage.

V případě protokolů uložených v systému souborů služby App Service je nejjednodušším způsobem stáhnout soubor ZIP v prohlížeči na adrese:

  • Linuxové nebo kontejnerové aplikace: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Aplikace pro Windows: https://<app-name>.scm.azurewebsites.net/api/dump

V případě linuxových/kontejnerových aplikací soubor ZIP obsahuje výstupní protokoly konzoly pro hostitele Dockeru i kontejner Dockeru. U aplikace se škálováním na více systémů soubor ZIP obsahuje jednu sadu protokolů pro každou instanci. V systému souborů služby App Service jsou tyto soubory protokolů obsahem adresáře /home/LogFiles .