Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure poskytuje integrovanou diagnostiku, která vám pomůže s laděním aplikace Azure App Service. V tomto článku se dozvíte, jak povolit protokolování diagnostiky a přidat instrumentaci do aplikace. Dozvíte se také, jak získat přístup k informacím, které Azure protokoluje.
Tento článek používá Azure Portal a Azure CLI k práci s diagnostickými protokoly. Informace o práci s diagnostickými protokoly pomocí sady Visual Studio najdete v tématu Řešení potíží s aplikací ve službě Azure App Service pomocí sady Visual Studio.
Kromě pokynů pro protokolování v tomto článku můžete použít funkci integrovaného protokolování služby Azure Monitor. Další informace najdete v tématu Odesílání protokolů do služby Azure Monitor.
Poznámka:
App Service poskytuje vyhrazený interaktivní diagnostický nástroj, který vám pomůže s řešením potíží s aplikací. Další informace najdete v přehledu diagnostiky služby Azure App Service.
Další služby Azure můžete také použít ke zlepšení možností protokolování a monitorování vaší aplikace, jako je Azure Monitor.
Přehled typů protokolování
| Typ | Platforma | Umístění úložiště protokolů | Popis |
|---|---|---|---|
| Protokolování aplikací | Windows, Linux | Systém souborů služby App Service nebo objekty blob služby Azure Storage | Protokolujte zprávy, které kód aplikace generuje. Zprávy můžou být generovány webovou architekturou, kterou zvolíte, nebo přímo z kódu aplikace pomocí standardního vzoru protokolování vašeho jazyka. Každé zprávě se přiřadí jedna z následujících kategorií: Kritické, Chyba, Upozornění, Informace, Ladění nebo Trasování. Můžete zvolit, jak podrobné má být protokolování, nastavením úrovně závažnosti při povolení protokolování aplikace. |
| Protokolování webového serveru | Windows | Systém souborů služby App Service nebo objekty blob služby Azure Storage | Nezpracovaná data HTTP požadavku ve formátu rozšířeného souboru logu 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 a kód odpovědi. |
| Podrobné chybové zprávy | Windows | Systém souborů služby App Service | Kopie chybových stránek .htm, které by byly odeslány do klientského prohlížeče. Z bezpečnostních důvodů by podrobné chybové stránky neměly být odesílány klientům v produkčním prostředí. App Service ale může uložit chybovou stránku pokaždé, když dojde k chybě aplikace s kódem HTTP 400 nebo vyšší. Stránka může obsahovat informace, které můžou pomoct určit, proč server vrací kód chyby. |
| Sledová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. Tyto informace jsou užitečné, pokud chcete zlepšit výkon webu nebo izolovat konkrétní chybu HTTP. Pro každou neúspěšnou žádost se vygeneruje jedna složka. Složka obsahuje soubor protokolu XML a šablonu stylů XSL pro zobrazení souboru protokolu. |
| Záznam nasazení | Windows, Linux | Systém souborů služby App Service | Protokoly o publikování obsahu 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á. |
Pokud jsou protokoly uložené v systému souborů služby App Service, podléhají dostupnému úložišti pro vaši cenovou úroveň. Další informace najdete v tématu Omezení služby App Service.
Povolení protokolování aplikace (Windows)
Povolení protokolování aplikací pro aplikace pro Windows na webu Azure Portal:
Přejděte do aplikace a vyberte Monitorování>protokolů služby App Service.
Vyberte Zapnuto pro jednu nebo obě z těchto možností:
Protokolování aplikace (Filesystem):: Tato možnost je určená pro dočasné účely ladění. Vypne se za 12 hodin.
Protokolování aplikace (objekt blob): Tato možnost je určená pro dlouhodobé protokolování. K zápisu protokolů potřebuje kontejner typu blob úložiště.
Možnost Blob zahrnuje další informace ve zprávách protokolu, jako je ID původní instance virtuálního počítače pro zprávu protokolu (
InstanceId), ID vlákna (Tid) a podrobnější časové razítko (EventTickCount).
V části Úroveň vyberte úroveň podrobností, která se má protokolovat. Následující tabulka uvádí kategorie protokolů zahrnuté v jednotlivých úrovních:
Úroveň Zahrnuté kategorie Zakázáno Žádné Chyba Chyba, kritická Upozornění Upozornění, chyba, kritické Informace Informace, upozornění, chyba, kritické Rozvláčný Trasování, Ladění, Informace, Upozornění, Chyba, Kritická chyba (všechny kategorie) Vyberte Uložit.
Pokud zapisujete protokoly do objektů blob, zásady uchovávání informací už neplatí, pokud aplikaci odstraníte, ale zachováte protokoly v objektech blob. Další informace najdete v tématu Náklady, které se mohou objevit po odstranění prostředku.
V současné době se do úložiště objektů blob dají zapisovat jenom protokoly aplikací .NET. Protokoly aplikací Java, PHP, Node.jsa Pythonu se dají ukládat jenom v systému souborů App Service bez úprav kódu pro zápis protokolů do externího úložiště.
Pokud znovu vygenerujete přístupové klíče účtu úložiště, musíte resetovat odpovídající konfiguraci protokolování, aby používala aktualizované přístupové klíče:
Na kartě Konfigurace nastavte příslušnou funkci protokolování na Vypnuto. Uložte nastavení.
Znovu povolte ukládání logů do blobu účtu úložiště. Uložte nastavení.
Povolení protokolování aplikace (Linux nebo kontejner)
Povolení protokolování aplikací pro linuxové aplikace nebo vlastní kontejnery na webu Azure Portal:
Přejděte do aplikace a vyberte Monitorování>protokolů služby App Service.
V protokolování aplikací vyberte Systém souborů.
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.
Vyberte Uložit.
Povolení protokolování webového serveru
Povolení protokolování webového serveru pro aplikace pro Windows na webu Azure Portal:
Přejděte do aplikace a vyberte Monitorování>protokolů služby App Service.
Pro ukládání protokolů webového serveru do úložiště objektů blob vyberte Úložiště, nebo pro ukládání do systému souborů služby App Service vyberte Systém souborů.
V období uchovávání (dny) nastavte počet dní, po které se mají protokoly uchovávat.
Vyberte Uložit.
Pokud zapisujete protokoly do objektů blob, zásady uchovávání informací už neplatí, pokud aplikaci odstraníte, ale zachováte protokoly v objektech blob. Další informace najdete v tématu Náklady, které se mohou objevit po odstranění prostředku.
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é klíče:
Na kartě Konfigurace nastavte příslušnou funkci protokolování na Vypnuto. Uložte nastavení.
Znovu povolte ukládání logů do blobu účtu úložiště. Uložte nastavení.
Protokolovat podrobné chyby
Uložení chybové stránky nebo neúspěšných trasování požadavků pro aplikace pro Windows na webu Azure Portal:
Přejděte do aplikace a vyberte Monitorování>protokolů služby App Service.
V části Podrobné chybové zprávy nebo trasování neúspěšných požadavků vyberte Zapnuto.
Vyberte Uložit.
Oba typy protokolů jsou uložené v systému souborů služby App Service. Uchovává až 50 chyb (souborů nebo složek). Pokud počet souborů HTML překročí 50, služba App Service odstraní nejstarší chybové soubory.
Trasování neúspěšných požadavků ve výchozím nastavení zachycuje protokol požadavků, které selhaly se stavovými kódy HTTP od 400 do 600. Pokud chcete zadat vlastní pravidla, přepište sekci <traceFailedRequests> v souboru Web.config.
Přidání zpráv protokolu do kódu
V kódu aplikace můžete pomocí běžného protokolování posílat protokolovací zprávy do logů aplikace. Například:
ASP.NET aplikace mohou pomocí třídy System.Diagnostics.Trace protokolovat informace do diagnostického protokolu aplikace. Například:
System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");Ve výchozím nastavení ASP.NET Core používá zprostředkovatele protokolování Microsoft.Extensions.Logging.AzureAppServices . Další informace najdete v tématu o protokolování ASP.NET Core v Azure. Informace o protokolování sady WebJobs SDK najdete v tématu Začínáme se sadou Azure WebJobs SDK.
Aplikace Pythonu můžou k odesílání protokolů do diagnostického protokolu aplikace používat OpenTelemetry. Další informace najdete v tématu Povolení služby Azure Monitor pro OpenTelemetry.
Protokoly datových proudů
Před streamováním protokolů v reálném čase povolte požadovaný typ protokolu. App Service streamuje všechny informace zapsané do výstupu konzoly nebo souborů končících .txt, .log nebo .htm, které jsou uložené v /home/LogFiles adresáři (D:\home\LogFiles).
Poznámka:
Některé typy protokolovacích vyrovnávacích pamětí zapisují do souboru protokolu, což může způsobit, že se události ve výsledném proudu zobrazí v nesprávném pořadí. Například položka protokolu aplikace, ke které dochází, 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 Azure portálu, přejděte do své aplikace a vyberte monitorování>Stream protokolu.
Cloud Shell
Pokud chcete streamovat protokoly živě v Azure Cloud Shellu, použijte následující příkaz.
Důležité
Tento příkaz nemusí fungovat s webovými aplikacemi hostovanými v plánu služby App Service založeném na Linuxu.
az webapp log tail --name appname --resource-group myResourceGroup
Pokud chcete filtrovat konkrétní typy protokolů, například HTTP, použijte --provider parametr. Například:
az webapp log tail --name appname --resource-group myResourceGroup --provider http
Místní terminál
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 pro typ protokolu nakonfigurujete možnost objektů blob služby Azure Storage, potřebujete klientský nástroj, který funguje se službou Azure Storage. Další informace najdete v tématu Klientské nástroje Microsoftu pro práci se službou Azure Storage.
Pro přístup k protokolům uloženým v systému souborů App Service použijte modul Kudu.
- Otevřete aplikaci na webu Azure Portal a vyberteRozšířené nástroje>pro vývoja pak vyberte Přejít.
- V Kudu vyberte Nástroje>Diagnostický výpis.
V případě linuxových nebo vlastních kontejnerů 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. Souborový systém služby App Service obsahuje tyto logovací soubory v adresáři /home/LogFiles. Protokoly nasazení jsou uloženy v /site/deployments/souboru .
U aplikací pro Windows soubor ZIP obsahuje obsah D:\Home\LogFiles adresáře v systému souborů služby App Service. Má následující strukturu:
| Typ protokolu | Adresář | Popis |
|---|---|---|
| Záznam aplikace | /LogFiles/Application/ |
Obsahuje jeden nebo více textových souborů. Formát zpráv protokolu závisí na poskytovateli protokolování, kterého používáte. |
| Sledování neúspěšných požadavků | /LogFiles/W3SVC#########/ |
Obsahuje soubory XML a soubor XSL. Formátované soubory XML můžete zobrazit v prohlížeči. |
| Podrobný protokol 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 Diagnostika a řešení problémů. Vyhledejte protokoly trasování neúspěšných požadavků a pak vyberte ikonu pro procházení a zobrazení požadovaného trasování. |
| Protokol webového serveru | /LogFiles/http/RawLogs/ |
Obsahuje textové soubory formátované pomocí rozšířeného formátu protokolu W3C. Tyto soubory můžete číst pomocí textového editoru nebo nástroje, jako je Log Parser. App Service nepodporuje pole s-computername, s-ip a cs-version. |
| Protokol nasazení |
/LogFiles/Git/ a /deployments/ |
Obsahuje protokoly vygenerované interními procesy nasazení a protokoly pro nasazení Gitu. |
Odesílání protokolů do služby Azure Monitor
S integrací služby Azure Monitor můžete vytvořit nastavení diagnostiky pro odesílání protokolů do účtů úložiště, center událostí a pracovních prostorů služby Log Analytics. Když přidáte nastavení diagnostiky, Služba App Service přidá do aplikace nastavení aplikace, která aktivuje restartování aplikace.
Podporované typy protokolů
Seznam podporovaných typů protokolů a jejich popis najdete v tématu Podporované protokoly prostředků pro Microsoft.Web.
Důležité informace o síti
Informace o omezeních nastavení diagnostiky najdete v tématu Omezení cíle.