Povolení protokolování diagnostiky aplikací ve službě Azure App Service
Přehled
Azure poskytuje integrovanou diagnostiku, která vám pomůže s laděním App Service aplikace. V tomto článku se dozvíte, jak povolit protokolování diagnostiky a přidat do aplikace instrumentaci a jak získat přístup k informacím zaprotokolovaných v Azure.
Tento článek k práci s Azure Portal protokoly používá rozhraní příkazového řádku Azure CLI. Informace o práci s diagnostickými protokoly pomocí Visual Studio najdete v tématu Řešení potíží s Azure v Visual Studio.
Poznámka
Kromě pokynů k protokolování v tomto článku je k dispozici nová integrovaná funkce protokolování s monitorováním Azure. Další informace o této funkci najdete v části Odeslání protokolů do Azure Monitor.
| Typ | Platforma | Umístění | Description |
|---|---|---|---|
| Protokolování aplikací | Windows, Linux | App Service systému souborů a/nebo Azure Storage objektů blob | Protokoluje zprávy vygenerované kódem vaší aplikace. Zprávy mohou být 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í. Pokud povolíte protokolování aplikace, můžete nastavit úroveň závažnosti a vybrat, jak podrobné má protokolování být. |
| Protokolování webového serveru | Windows | App Service systému souborů nebo Azure Storage objektů blob | Nezpracovaná data požadavku HTTP ve formátu souboru protokolu W3C extended. 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é chybové zprávy | Windows | App Service systému souborů | Kopie chybových.htm, které by byly odeslány do prohlížeče klienta. Z bezpečnostních důvodů by se neměly klientům v produkčním prostředí odesílat podrobné chybové stránky, ale App Service může chybovou stránku uložit pokaždé, když dojde k chybě aplikace s kódem HTTP 400 nebo vyšším. Stránka může obsahovat informace, které vám můžou pomoct určit, proč server vrací kód chyby. |
| Trasování neúspěšných požadavků | Windows | App Service systému souborů | Podrobné informace o trasování neúspěšných požadavků, včetně trasování součástí služby IIS použitých ke zpracování požadavku a času potřebného v jednotlivých komponentách. To je užitečné, pokud chcete zlepšit výkon webu nebo izolovat konkrétní chybu PROTOKOLU HTTP. Pro každý neúspěšný požadavek se vygeneruje jedna složka, která obsahuje soubor protokolu XML, a šablonu stylů XSL pro zobrazení souboru protokolu. |
| Protokolování nasazení | Windows, Linux | App Service systému souborů | Protokoluje, kdy publikujete obsah do aplikace. Protokolování nasazení probíhá automaticky a pro protokolování nasazení neexistuje žádné konfigurovatelné nastavení. Pomůže vám určit, proč nasazení selhalo. Pokud například používáte vlastní skript nasazení, můžete pomocí protokolování nasazení určit, proč skript selhává. |
Poznámka
App Service poskytuje vyhrazený interaktivní diagnostický nástroj, který vám pomůže s odstraňováním potíží s vaší aplikací. Další informace najdete v tématu Azure App Service diagnostice.
Kromě toho můžete pomocí dalších služeb Azure vylepšit možnosti protokolování a monitorování vaší aplikace, například Azure Monitor.
Povolení protokolování aplikace (Windows)
Poznámka
Protokolování aplikace pro úložiště objektů blob může používat jenom účty úložiště ve stejné oblasti jako App Service
Pokud chcete povolit protokolování aplikace Windows aplikacím v Azure Portal,přejděte do své aplikace a vyberte App Service protokoly.
U možnosti Application Logging (systém souborů) nebo Application Logging (objekt blob) nebo obojí.
Možnost Systém souborů slouží k dočasným účelům ladění a během 12 hodin se vypne. Možnost Blob je dispozici pro dlouhodobé protokolování a k zápisu protokolů potřebuje kontejner úložiště objektů blob. Možnost Objekt blob také obsahuje další informace ve zprávách protokolu, například ID původní instance virtuálního počítače zprávy protokolu ( ), ID vlákna ( ) a podrobnější časové InstanceId Tid razítko ( EventTickCount ).
Poznámka
V současné době je možné do úložiště objektů blob zapisovat pouze protokoly aplikací .NET. Protokoly aplikací Java, PHP, Node.js a Python je možné ukládat pouze v systému souborů App Service (bez úprav kódu pro zápis protokolů do externího úložiště).
Navíc pokud znovu vygenerujtepřístupové klíče účtu úložiště , musíte resetovat příslušnou konfiguraci protokolování tak, aby se aktualizované přístupové klíče používat. Použijte následující postup:
- Na kartě Konfigurovat nastavte příslušnou funkci protokolování na Vypnuto. Uložte nastavení.
- Znovu povolte protokolování do objektu blob účtu úložiště. Uložte nastavení.
Vyberte úroveň nebo úroveň podrobností, které chcete protokolovat. Následující tabulka uvádí kategorie protokolů zahrnuté v jednotlivých úrovních:
| Level | Zahrnuté kategorie |
|---|---|
| Zakázáno | Žádné |
| 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) |
Po dokončení vyberte Uložit.
Poznámka
Pokud zapisujete protokoly do objektů blob, zásady uchovávání informací už nebudou platné, pokud odstraníte aplikaci, ale protokoly v objektech blob se uchová. Další informace najdete v tématu Náklady, které se můžou na účtu po odstranění prostředku narůst.
Povolení protokolování aplikace (Linux/kontejner)
Pokud chcete povolit protokolování aplikace pro linuxové aplikace nebo vlastní kontejnerové aplikace v Azure Portal,přejděte do své aplikace a vyberte App Service protokoly.
V části Protokolování aplikace vyberte Systém souborů.
V části Kvóta (MB) zadejte kvótu disku pro protokoly aplikací. V části Doba uchování (dny) nastavte počet dní, po které se mají protokoly uchovávat.
Po dokončení vyberte Uložit.
Povolení protokolování webového serveru
Pokud chcete povolit protokolování webového serveru pro Windows aplikace v Azure Portal,přejděte do své aplikace a vyberte App Service protokoly.
V části Protokolování webového serveru vyberte Storage ukládání protokolů do úložiště objektů blob nebo Systém souborů, do App Service systému souborů.
V části Doba uchování (dny) nastavte počet dní, po které se mají protokoly uchovávat.
Poznámka
Pokud znovu vygenerujte přístupovéklíče účtu úložiště , musíte resetovat příslušnou konfiguraci protokolování tak, aby se aktualizované klíče musely používat. Použijte následující postup:
- Na kartě Konfigurovat nastavte příslušnou funkci protokolování na Vypnuto. Uložte nastavení.
- Znovu povolte protokolování do objektu blob účtu úložiště. Uložte nastavení.
Po dokončení vyberte Uložit.
Poznámka
Pokud zapisujete protokoly do objektů blob, zásady uchovávání informací už nebudou platné, pokud odstraníte aplikaci, ale protokoly v objektech blob se uchová. Další informace najdete v tématu Náklady, které se můžou na účtu po odstranění prostředku narůst.
Protokolování podrobných chyb
Pokud chcete uložit chybovou stránku nebo trasování neúspěšných požadavků pro Windows aplikace v Azure Portal,přejděte do své aplikace a vyberte App Service protokoly.
V části Podrobné protokolování chyb nebo Trasování neúspěšných žádostí vyberte On (Zapnout) a pak vyberte Save (Uložit).
Oba typy protokolů jsou uložené v App Service systému souborů. Uchovává se až 50 chyb (souborů a složek). Pokud počet souborů HTML překročí 50, nejstarší soubory chyb se automaticky odstraní.
Funkce Trasování neúspěšných požadavků ve výchozím nastavení zaznamenává protokol požadavků, které selhaly, se stavové kódy HTTP v rozmezí od 400 do 600. Pokud chcete zadat vlastní pravidla, můžete přepsat <traceFailedRequests> oddíl vweb.configsouboru.
Přidání zpráv protokolu v kódu
V kódu aplikace použijete k odesílání zpráv protokolu do protokolů aplikace obvyklé funkce protokolování. Příklad:
ASP.NET aplikace mohou pomocí třídy System.Diagnostics.Trace protokolovat informace do diagnostického protokolu aplikace. Příklad:
System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");Ve výchozím nastavení ASP.NET Core zprostředkovatele protokolování Microsoft.Extensions.Logging.AzureAppServices. Další informace najdete v tématu ASP.NET Core protokolování v Azure. Informace o protokolování sady WebJobs SDK najdete v tématu Začínáme se sadou Azure WebJobs SDK.
Protokoly datových proudů
Před streamování protokolů v reálném čase povolte typ protokolu, který chcete. Všechny informace zapsané do souborů končících na .txt, .log nebo .htm, které jsou uložené v adresáři /LogFiles (d:/home/logfiles), jsou streamovány pomocí App Service.
Poznámka
Některé typy zápisu vyrovnávací paměti protokolování do souboru protokolu, což může vést k událostem ve streamu mimo pořadí. Například položka protokolu aplikace, ke které dochází, když uživatel navštíví stránku, se může ve streamu zobrazit před odpovídající položku protokolu HTTP pro požadavek na stránku.
V Azure Portal
Pokud chcete streamovat protokoly v Azure Portal, přejděte do své aplikace a vyberte Stream protokolu.
V Cloud Shell
Pokud chcete streamovat protokoly živě Cloud Shell, použijte následující příkaz:
Důležité
Tento příkaz nemusí fungovat s webovými aplikacemi hostované v plánu služby App Service pro Linux.
az webapp log tail --name appname --resource-group myResourceGroup
Pokud chcete filtrovat konkrétní typy protokolů, například HTTP, použijte parametr --Provider. Příklad:
az webapp log tail --name appname --resource-group myResourceGroup --provider http
V místním terminálu
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ů pro Cloud Shell
Přístup k souborům protokolu
Pokud nakonfigurujete možnost Azure Storage blob pro typ protokolu, budete potřebovat klientský nástroj, který funguje s Azure Storage. Další informace najdete v tématu Azure Storage Client Tools.
U protokolů uložených App Service systému souborů je nejjednodušší způsob, jak stáhnout soubor ZIP v prohlížeči na adrese:
- Linuxové/kontejnerové aplikace:
https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip - Windows aplikací:
https://<app-name>.scm.azurewebsites.net/api/dump
V případě linuxových nebo kontejnerových aplikací obsahuje soubor ZIP výstupní protokoly konzoly pro hostitele Dockeru i kontejner Dockeru. V případě aplikace s horizontálním navýšením velikosti obsahuje soubor ZIP jednu sadu protokolů pro každou instanci. V App Service souborů jsou tyto soubory protokolu obsahem adresáře /home/LogFiles.
Pro Windows aplikace obsahuje soubor ZIP obsah adresáře D:\Home\LogFiles v App Service systému souborů. Má následující strukturu:
| Typ protokolu | Adresář | Description |
|---|---|---|
| Protokoly aplikací | /LogFiles/Application/ | Obsahuje jeden nebo více textových souborů. Formát zpráv protokolu závisí na poskytovateli protokolování, který používáte. |
| Trasování neúspěšných žádostí | /LogFiles/W3SVC########/ | Obsahuje soubory XML a soubor XSL. Formátované soubory XML můžete zobrazit v prohlížeči. |
| Podrobné protokoly chyb | /LogFiles/DetailedErrors/ | Obsahuje soubory chyb HTM. Soubory HTM můžete zobrazit v prohlížeči. Dalším způsobem, jak zobrazit trasování neúspěšných požadavků, je přejít na stránku aplikace na portálu. V nabídce vlevo vyberte Diagnostikovat a řešit problémy, vyhledejte Protokoly trasování neúspěšných žádostí a pak kliknutím na ikonu vyhledejte a zobrazte trasování, které chcete. |
| Protokoly webového serveru | /LogFiles/http/RawLogs/ | Obsahuje textové soubory formátované pomocí rozšířeného formátu souboru protokolu W3C. Tyto informace je možné číst pomocí textového editoru nebo nástroje, jako je Log Parser. App Service nepodporuje pole , s-computername s-ip nebo cs-version . |
| Protokoly nasazení | /LogFiles/Git/ a /deployments/ | Obsahují protokoly generované interními procesy nasazení a protokoly pro nasazení Gitu. |
Odesílání protokolů do služby Azure Monitor
S novou integrací Azure Monitormůžete vytvořit nástroj pro Nastavení k odesílání protokolů do účtů Storage, Event Hubs a Log Analytics.

Podporované typy protokolů
Následující tabulka uvádí podporované typy a popisy protokolů:
| Typ protokolu | Windows | Windows Kontejner | Linux | Kontejner Linuxu | Description |
|---|---|---|---|---|---|
| AppServiceConsoleLogs | Java SE & Tomcat | Yes | Yes | Yes | Standardní výstup a standardní chyba |
| AppServiceHTTPLogs | Yes | Yes | Yes | Yes | Protokoly webového serveru |
| AppServiceEnvironmentPlatformLogs | Yes | Není k dispozici | Ano | Yes | App Service Environment: škálování, změny konfigurace a stavové protokoly |
| AppServiceAuditLogs | Yes | Yes | Yes | Yes | Přihlašovací aktivita prostřednictvím FTP a Kudu |
| AppServiceFileAuditLogs | Yes | Yes | TBA | TBA | Změny souborů provedené v obsahu webu; dostupné jenom pro vrstvu Premium a vyšší |
| AppServiceAppLogs | ASP.NET & Tomcat 1 | ASP.NET & Tomcat 1 | obrázky Java SE & Tomcat s hodně | obrázky Java SE & Tomcat s hodně | Protokoly aplikací |
| AppServiceIPSecAuditLogs | Yes | Yes | Yes | Yes | Žádosti z pravidel IP adres |
| AppServicePlatformLogs | TBA | Yes | Yes | Yes | Protokoly operací kontejneru |
| AppServiceAntivirusScanAuditLogs 3 | Yes | Yes | Yes | Yes | Protokoly kontroly antivirového programu pomocí programu Microsoft Defender pro Cloud; k dispozici pouze pro Premium úroveň |
1 pro aplikace Tomcat přidejte TOMCAT_USE_STARTUP_BAT do nastavení aplikace a nastavte ji na false nebo 0 . Musí být na nejnovější verzi Tomcat a používat Java. util. Logging.
2 pro aplikace Java SE přidejte WEBSITE_AZMON_PREVIEW_ENABLED do nastavení aplikace a nastavte ji na true nebo na 1 .
3 typ protokolu AppServiceAntivirusScanAuditLogs je stále ve verzi Preview.