Logboekregistratieproviders behouden logboeken, met uitzondering van de Console-provider, die alleen logboeken als standaarduitvoer weergeeft. De Azure Application Insights-provider slaat bijvoorbeeld logboeken op in Azure Application Insights. Meerdere providers kunnen worden ingeschakeld.
using Microsoft.Extensions.Hosting;
using IHost host = Host.CreateApplicationBuilder(args).Build();
// Application code should start here.
await host.RunAsync();
In de voorgaande code ziet u de Program klasse die is gemaakt met de .NET Worker-app-sjablonen. De volgende secties bevatten voorbeelden op basis van de .NET Worker-app-sjablonen, die gebruikmaken van de algemene host.
Als u de standaardset logboekregistratieproviders wilt overschrijven die zijn toegevoegd door Host.CreateApplicationBuilder, roept u ClearProviders aan en voegt u de gewenste logboekregistratieproviders toe. Bijvoorbeeld de volgende code:
Een service configureren die afhankelijk is van ILogger
Als u een service wilt configureren die afhankelijk is van ILogger<T>, gebruikt u constructorinjectie of geeft u een fabrieksmethode op. De factorymethode wordt alleen aangeraden als er geen andere optie is. Denk bijvoorbeeld aan een service die een ILogger<T> exemplaar van DI nodig heeft:
De voorgaande code is een Func<IServiceProvider, IExampleService> die wordt uitgevoerd wanneer de DI-container voor het eerst een exemplaar van IExampleServicemoet maken. U hebt op deze manier toegang tot alle geregistreerde services.
Ingebouwde providers voor logboekregistratie
Microsoft Extensions omvatten de volgende providers voor logboekregistratie als onderdeel van de runtimebibliotheken:
De volgende providers voor logboekregistratie worden geleverd door Microsoft, maar niet als onderdeel van de runtimebibliotheken. Ze moeten worden geïnstalleerd als extra NuGet-pakketten.
De Console provider registreert uitvoer naar de console.
Debuggen
De Debug provider schrijft logboekuitvoer met behulp van de System.Diagnostics.Debug-klasse, met name via de Debug.WriteLine methode en alleen wanneer het foutopsporingsprogramma is gekoppeld. De DebugLoggerProvider maakt exemplaren van een loggerklasse die de ILogger-interface implementeert.
Gebeurtenisbron
De EventSource provider schrijft naar een platformoverschrijdende gebeurtenisbron met de naam Microsoft-Extensions-Logging. In Windows gebruikt de provider ETW-.
hulpprogramma's voor dotnet-tracering
Het dotnet-trace hulpprogramma is een platformoverschrijdend CLI-hulpprogramma waarmee .NET Core-traceringen van een actief proces kunnen worden verzameld. Het hulpprogramma verzamelt Microsoft.Extensions.Logging.EventSource providergegevens met behulp van een LoggingEventSource.
De EventLog-provider verzendt logboekuitvoer naar het Windows-gebeurtenislogboek. In tegenstelling tot de andere providers erft de EventLog provider niet de standaardinstellingen voor een niet-provider. Als EventLog logboekinstellingen niet zijn opgegeven, worden ze standaard ingesteld op LogLevel.Warning.
Als u gebeurtenissen wilt vastleggen die lager zijn dan LogLevel.Warning, stelt u het logboekniveau expliciet in. In het volgende voorbeeld wordt het standaardlogboekniveau van het gebeurtenislogboek ingesteld op LogLevel.Information:
Wanneer de app is geïmplementeerd in Azure App Service, worden de instellingen in de App Service-logboeken sectie van de pagina App Service van Azure Portal gebruikt. Wanneer de volgende instellingen worden bijgewerkt, worden de wijzigingen onmiddellijk van kracht zonder dat de app opnieuw hoeft te worden opgestart of opnieuw hoeft te worden geïmplementeerd.
De standaardlocatie voor logboekbestanden bevindt zich in de map D:\home\LogFiles\Application. Aanvullende standaardwaarden variëren per provider:
Application Logging (Filesystem): De standaard bestandsnaam van het bestandssysteem is diagnostics-yyyymmdd.txt. De standaardlimiet voor de bestandsgrootte is 10 MB en het standaard maximum aantal bewaarde bestanden is 2.
Application Logging (Blob): De standaard-blobnaam is {app-name}/jjjj/mm/dd/hh/{guid}_applicationLog.txt.
Deze provider registreert alleen wanneer het project wordt uitgevoerd in de Azure-omgeving.
Azure-logboekstreaming
Azure-logboekstreaming biedt ondersteuning voor het weergeven van logboekactiviteiten in realtime vanuit:
De app-server
De webserver
Tracering van mislukte aanvragen
Om Azure-logstreaming te configureren:
Navigeer naar de App Service-logboeken pagina vanaf de portalpagina van de app.
Stel application logging (bestandssysteem) in op On.
Kies het logboek niveau. Deze instelling is alleen van toepassing op Azure-logboekstreaming.
Navigeer naar de pagina Logstream om logs weer te geven. De vastgelegde berichten worden vastgelegd met de ILogger interface.
Azure Application Insights
Het Microsoft.Extensions.Logging.ApplicationInsights providerpakket schrijft logboeken naar Azure Application Insights-. Application Insights is een service die een web-app bewaakt en hulpprogramma's biedt voor het opvragen en analyseren van de telemetriegegevens. Als u deze provider gebruikt, kunt u uw logboeken opvragen en analyseren met behulp van de Application Insights-hulpprogramma's.
Ontwerpoverwegingen voor logboekregistratieprovider
Als u van plan bent om uw eigen implementatie van de ILoggerProvider-interface en de bijbehorende aangepaste implementatie van ILoggerte ontwikkelen, moet u rekening houden met de volgende punten:
De levensduur van de logboekstatus en -objecten moet niet worden aangenomen.
Een implementatie van ILoggerProvider maakt een ILogger via de ILoggerProvider.CreateLogger methode. Als uw implementatie streeft naar het vastleggen van berichten in de wachtrij op een niet-blokkerende manier, moeten de berichten eerst worden gerealiseerd of moet de objectstatus die wordt gebruikt om een logboekvermelding te materialiseren, worden geserialiseerd. Hiermee voorkomt u mogelijke uitzonderingen van vrijgegeven objecten.
De bron voor deze inhoud vindt u op GitHub, waar u ook problemen en pull-aanvragen kunt maken en controleren. Bekijk onze gids voor inzenders voor meer informatie.
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven:
Meer informatie over het vastleggen van traceringsuitvoer van uw Azure-web-apps. Bekijk een livelogboekstream en download logboekbestanden voor offline-analyse.