hulpprogramma voor prestatieanalyse van dotnet-trace
Dit artikel is van toepassing op: ✔️ dotnet-trace
3.0.47001 en latere versies
Installeren
Er zijn twee manieren om te downloaden en installeren dotnet-trace
:
dotnet global tool:
Als u de nieuwste versie van het NuGet-pakket wilt installeren, gebruikt u de installatieopdracht van het
dotnet-trace
dotnet-hulpprogramma:dotnet tool install --global dotnet-trace
Directe download:
Download het uitvoerbare hulpprogramma dat overeenkomt met uw platform:
Besturingssysteem Platform Windows x86 x64 | Arm-x64 | | Linux x64 | Arm64 | | musl-x64 | musl-Arm64
Samenvatting
dotnet-trace [-h, --help] [--version] <command>
Beschrijving
Het dotnet-trace
hulpprogramma:
- Is een platformoverschrijdend .NET Core-hulpprogramma.
- Hiermee kunt u .NET Core-traceringen van een actief proces zonder systeemeigen profiler verzamelen.
- Is gebaseerd op
EventPipe
de .NET Core-runtime. - Biedt dezelfde ervaring in Windows, Linux of macOS.
Opties
-h|--help
Toont opdrachtregelhulp.
--version
Geeft de versie van het hulpprogramma dotnet-trace weer.
--duration
Hoe lang de tracering moet worden uitgevoerd.
--duration 00:00:00:05
wordt deze gedurende 5 seconden uitgevoerd.
Opdracht
Opdracht |
---|
dotnet-trace collect |
dotnet-trace convert |
dotnet-trace ps |
dotnet-trace list-profiles |
dotnet-trace-rapport |
dotnet-trace collect
Verzamelt een diagnostische tracering van een actief proces of start een onderliggend proces en traceert het (.NET 5 of hoger). Als u wilt dat het hulpprogramma een onderliggend proces uitvoert en deze traceert vanaf het opstarten, voegt u de opdracht Verzamelen toe --
.
Samenvatting
dotnet-trace collect [--buffersize <size>] [--clreventlevel <clreventlevel>] [--clrevents <clrevents>]
[--format <Chromium|NetTrace|Speedscope>] [-h|--help] [--duration dd:hh:mm:ss]
[-n, --name <name>] [--diagnostic-port] [-o|--output <trace-file-path>] [-p|--process-id <pid>]
[--profile <profile-name>] [--providers <list-of-comma-separated-providers>]
[-- <command>] (for target applications running .NET 5 or later)
[--show-child-io] [--resume-runtime]
[--stopping-event-provider-name <stoppingEventProviderName>]
[--stopping-event-event-name <stoppingEventEventName>]
[--stopping-event-payload-filter <stoppingEventPayloadFilter>]
Opties
--buffersize <size>
Hiermee stelt u de grootte van de buffer in het geheugen in megabytes in. Standaard 256 MB.
Notitie
Als het doelproces gebeurtenissen sneller verzendt dan ze naar de schijf kunnen worden geschreven, kan deze buffer overlopen en worden sommige gebeurtenissen verwijderd. U kunt dit probleem oplossen door de buffergrootte te vergroten of het aantal opgenomen gebeurtenissen te verminderen.
--clreventlevel <clreventlevel>
Uitgebreidheid van CLR-gebeurtenissen die moeten worden verzonden. In de volgende tabel ziet u de beschikbare gebeurtenisniveaus.
Tekenreekswaarde Numerieke waarde logalways
0
critical
1
error
2
warning
3
informational
4
verbose
5
--clrevents <clrevents>
Een lijst met CLR-runtimeprovidertrefwoorden om gescheiden door
+
tekens in te schakelen. Dit is een eenvoudige toewijzing waarmee u gebeurtenistrefwoorden kunt opgeven via tekenreeksaliassen in plaats van hun hexe waarden. Vraagt bijvoorbeelddotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:3:4
dezelfde set gebeurtenissen aan alsdotnet-trace collect --clrevents gc+gchandle --clreventlevel informational
. In de onderstaande tabel ziet u de lijst met beschikbare trefwoorden:Alias trefwoordtekenreeks Hexwaarde voor trefwoord gc
0x1
gchandle
0x2
fusion
0x4
loader
0x8
jit
0x10
ngen
0x20
startenumeration
0x40
endenumeration
0x80
security
0x400
appdomainresourcemanagement
0x800
jittracing
0x1000
interop
0x2000
contention
0x4000
exception
0x8000
threading
0x10000
jittedmethodiltonativemap
0x20000
overrideandsuppressngenevents
0x40000
type
0x80000
gcheapdump
0x100000
gcsampledobjectallocationhigh
0x200000
gcheapsurvivalandmovement
0x400000
gcheapcollect
0x800000
gcheapandtypenames
0x1000000
gcsampledobjectallocationlow
0x2000000
perftrack
0x20000000
stack
0x40000000
threadtransfer
0x80000000
debugger
0x100000000
monitoring
0x200000000
codesymbols
0x400000000
eventsource
0x800000000
compilation
0x1000000000
compilationdiagnostic
0x2000000000
methoddiagnostic
0x4000000000
typediagnostic
0x8000000000
Meer informatie over de CLR-provider vindt u in de referentiedocumentatie voor .NET Runtime-providers.
--format {Chromium|NetTrace|Speedscope}
Hiermee stelt u de uitvoerindeling voor de conversie van het traceringsbestand in. De standaardwaarde is
NetTrace
.-n, --name <name>
De naam van het proces waaruit de tracering moet worden verzameld.
--diagnostic-port <path-to-port>
De naam van de diagnostische poort die moet worden gemaakt. Zie Diagnostische poort gebruiken om een tracering van het opstarten van de app te verzamelen voor informatie over het gebruik van deze optie om een tracering te verzamelen van het opstarten van de app.
--duration <time-to-run>
De tijd waarop de tracering moet worden uitgevoerd. Gebruik de
dd:hh:mm:ss
indeling. U kunt deze bijvoorbeeld00:00:00:05
5 seconden uitvoeren.-o|--output <trace-file-path>
Het uitvoerpad voor de verzamelde traceringsgegevens. Als deze niet is opgegeven, wordt deze standaard ingesteld op
<appname>_<yyyyMMdd>_<HHmmss>.nettrace
bijvoorbeeld 'myapp_20210315_111514.nettrace'.-p|--process-id <PID>
De proces-id waaruit de tracering moet worden verzameld.
--profile <profile-name>
Een benoemde vooraf gedefinieerde set providerconfiguraties waarmee algemene traceringsscenario's beknopt kunnen worden opgegeven. De volgende profielen zijn beschikbaar:
Profiel | Omschrijving |
---|---|
cpu-sampling |
Handig voor het bijhouden van CPU-gebruik en algemene .NET-runtimegegevens. Dit is de standaardoptie als er geen profiel of providers zijn opgegeven. |
gc-verbose |
Houdt GC-verzamelingen en voorbeelden van objecttoewijzingen bij. |
gc-collect |
Houdt GC-verzamelingen alleen bij zeer lage overhead bij. |
--providers <list-of-comma-separated-providers>
Een door komma's gescheiden lijst met
EventPipe
providers die moeten worden ingeschakeld. Deze providers vullen alle providers aan die worden geïmpliceerd door--profile <profile-name>
. Als er inconsistentie is voor een bepaalde provider, heeft deze configuratie voorrang op de impliciete configuratie van het profiel.Deze lijst met providers heeft de volgende vorm:
Provider[,Provider]
Provider
is in de vorm:KnownProviderName[:Flags[:Level][:KeyValueArgs]]
.KeyValueArgs
is in de vorm:[key1=value1][;key2=value2]
.
Raadpleeg bekende gebeurtenisproviders voor meer informatie over enkele bekende providers in .NET.
-- <command>
(voor doeltoepassingen met .NET 5 of hoger)Na de configuratieparameters van de verzameling kan de gebruiker worden toegevoegd
--
, gevolgd door een opdracht om een .NET-toepassing te starten met ten minste een runtime van 5.0. Dit kan handig zijn bij het diagnosticeren van problemen die vroeg in het proces optreden, zoals opstartprestaties of assemblylaadprogramma's en binderfouten.Notitie
Met deze optie wordt het eerste .NET-proces bewaakt dat met het hulpprogramma communiceert. Dit betekent dat als uw opdracht meerdere .NET-toepassingen start, alleen de eerste app wordt verzameld. Daarom is het raadzaam deze optie te gebruiken voor zelfstandige toepassingen of het gebruik van de
dotnet exec <app.dll>
optie.--show-child-io
Toont de invoer- en uitvoerstromen van een gestart onderliggend proces in de huidige console.
--resume-runtime
Runtime hervatten zodra de sessie is geïnitialiseerd, is de standaardwaarde waar. Schakel het hervatten van runtime uit met behulp van --resume-runtime:false.
--stopping-event-provider-name
Een tekenreeks die als zodanig wordt geparseerd, waardoor de tracering wordt gestopt bij het bereiken van een gebeurtenis met de overeenkomende providernaam. Voor een specifiekere stoppende gebeurtenis moet u ook opgeven
--stopping-event-event-name
en/of--stopping-event-payload-filter
. bijvoorbeeld--stopping-event-provider-name Microsoft-Windows-DotNETRuntime
om de tracering te stoppen bij het bereiken van de eerste gebeurtenis die door deMicrosoft-Windows-DotNETRuntime
gebeurtenisprovider is verzonden.--stopping-event-event-name
Een tekenreeks die als zodanig wordt geparseerd, waardoor de tracering wordt gestopt bij het bereiken van een gebeurtenis met de overeenkomende gebeurtenisnaam. Moet
--stopping-event-provider-name
worden ingesteld. Voor een specifiekere stopbeurtenis moet u ook opgeven--stopping-event-payload-filter
. bijvoorbeeld--stopping-event-provider-name Microsoft-Windows-DotNETRuntime --stopping-event-event-name Method/JittingStarted
om de tracering te stoppen bij het bereiken van de eersteMethod/JittingStarted
gebeurtenis die door deMicrosoft-Windows-DotNETRuntime
gebeurtenisprovider is verzonden.--stopping-event-payload-filter
Een tekenreeks, geparseerd als [payload_field_name]:[payload_field_value] paren gescheiden door komma's, die de tracering stoppen bij het raken van een gebeurtenis met alle opgegeven nettoladingparen. Vereist
--stopping-event-provider-name
en--stopping-event-event-name
moet worden ingesteld. bijvoorbeeld--stopping-event-provider-name Microsoft-Windows-DotNETRuntime --stopping-event-event-name Method/JittingStarted --stopping-event-payload-filter MethodNameSpace:Program,MethodName:OnButtonClick
om de tracering te stoppen bij de eersteMethod/JittingStarted
gebeurtenis voor de methodeOnButtonClick
in deProgram
naamruimte die door deMicrosoft-Windows-DotNETRuntime
gebeurtenisprovider wordt verzonden.
Notitie
- Het stoppen van de tracering kan lang (tot minuten) duren voor grote toepassingen. De runtime moet verzenden via de typecache voor alle beheerde code die in de trace is vastgelegd.
- In Linux en macOS verwacht deze opdracht de doeltoepassing en
dotnet-trace
deelt deze dezelfdeTMPDIR
omgevingsvariabele. Anders treedt er een time-out op voor de opdracht.
- Als u een tracering wilt verzamelen met behulp
dotnet-trace
van, moet deze worden uitgevoerd als dezelfde gebruiker als de gebruiker die het doelproces uitvoert of als hoofdmap. Anders kan het hulpprogramma geen verbinding maken met het doelproces.
- Als u een niet-verwerkte uitzondering ondervindt tijdens het uitvoeren
dotnet-trace collect
, resulteert dit in een onvolledige tracering. Als u de hoofdoorzaak van de uitzondering vindt, gaat u naar Dumps verzamelen bij crash. Als gevolg van de niet-verwerkte uitzondering wordt de tracering afgekapt wanneer de runtime wordt afgesloten om ander ongewenst gedrag te voorkomen, zoals vastlopen of beschadiging van gegevens. Hoewel de tracering onvolledig is, kunt u deze nog steeds openen om te zien wat er is gebeurd tot de fout. Er ontbreken echter Rundown-gegevens (dit gebeurt aan het einde van een tracering), zodat stacks mogelijk onopgeloste zijn (afhankelijk van de providers die zijn ingeschakeld). Open de trace door PerfView uit te voeren met de/ContinueOnError
vlag op de opdrachtregel. De logboeken bevatten ook de locatie waar de uitzondering is geactiveerd.
- Wanneer u een stopgebeurtenis opgeeft via de
--stopping-event-*
opties, omdat de EventStream asynchroon wordt geparseerd, zijn er enkele gebeurtenissen die passeren tussen het moment dat een traceringsgebeurtenis die overeenkomt met de opgegeven opties voor stopgebeurtenissen wordt geparseerd en de EventPipeSession wordt gestopt.
dotnet-trace convert
Converteert nettrace
traceringen naar alternatieve indelingen voor gebruik met alternatieve hulpprogramma's voor traceringsanalyse.
Samenvatting
dotnet-trace convert [<input-filename>] [--format <Chromium|NetTrace|Speedscope>] [-h|--help] [-o|--output <output-filename>]
Argumenten
<input-filename>
Invoertraceringsbestand dat moet worden geconverteerd. Standaard ingesteld op trace.nettrace.
Opties
--format <Chromium|NetTrace|Speedscope>
Hiermee stelt u de uitvoerindeling voor de conversie van het traceringsbestand in.
-o|--output <output-filename>
Uitvoerbestand. De extensie van de doelindeling wordt toegevoegd.
Notitie
Het converteren van nettrace
bestanden naar chromium
of speedscope
bestanden kan niet ongedaan worden. speedscope
en chromium
bestanden hebben niet alle informatie die nodig is om bestanden te reconstrueren nettrace
. De convert
opdracht behoudt echter het oorspronkelijke nettrace
bestand, dus verwijder dit bestand niet als u het in de toekomst wilt openen.
dotnet-trace ps
Geeft een lijst weer van de dotnet-processen waaruit traceringen kunnen worden verzameld.
dotnet-trace
6.0.320703 en hoger, geeft ook de opdrachtregelargumenten weer waarmee elk proces is gestart, indien beschikbaar.
Notitie
Als u volledige informatie wilt over geïnventariseerd 64-bits processen, moet u een 64-bits versie van het dotnet-trace
hulpprogramma gebruiken.
Samenvatting
dotnet-trace ps [-h|--help]
Opmerking
Stel dat u een langlopende app start met behulp van de opdracht dotnet run --configuration Release
. In een ander venster voert u de dotnet-trace ps
opdracht uit. De uitvoer die u ziet, is als volgt. De opdrachtregelargumenten, indien beschikbaar, worden weergegeven in dotnet-trace
versie 6.0.320703 en hoger.
> dotnet-trace ps
21932 dotnet C:\Program Files\dotnet\dotnet.exe run --configuration Release
36656 dotnet C:\Program Files\dotnet\dotnet.exe
dotnet-trace list-profiles
Toont vooraf gebouwde traceringsprofielen met een beschrijving van welke providers en filters zich in elk profiel bevinden.
Samenvatting
dotnet-trace list-profiles [-h|--help]
dotnet-trace-rapport
Hiermee maakt u een rapport in stdout op basis van een eerder gegenereerde trace.
Samenvatting
dotnet-trace report [-h|--help] <tracefile> [command]
Argumenten
<tracefile>
Het bestandspad voor de trace die wordt geanalyseerd.
Opdracht
dotnet-trace rapport topN
Hiermee vindt u de belangrijkste N-methoden die op de callstack het langst zijn.
Samenvatting
dotnet-trace report <tracefile> topN [-n|--number <n>] [--inclusive] [-v|--verbose] [-h|--help]
Opties
-n|--number <n>
Geeft de belangrijkste N-methoden op de callstack.
--inclusive
Voer de belangrijkste N-methoden uit op basis van inclusieve tijd. Als dit niet is opgegeven, wordt de exclusieve tijd standaard gebruikt.
-v|--verbose
Voer de parameters van elke methode volledig uit. Als dit niet is opgegeven, worden parameters afgekapt.
Een tracering verzamelen met dotnet-trace
Traceringen verzamelen met behulp van dotnet-trace
:
Haal de proces-id (PID) van de .NET Core-toepassing op om traceringen van te verzamelen.
- In Windows kunt u bijvoorbeeld Taakbeheer of de
tasklist
opdracht gebruiken. - In Linux bijvoorbeeld de
ps
opdracht. - dotnet-trace ps
- In Windows kunt u bijvoorbeeld Taakbeheer of de
Voer de volgende opdracht uit:
dotnet-trace collect --process-id <PID>
Met de voorgaande opdracht wordt uitvoer gegenereerd die vergelijkbaar is met de volgende:
Press <Enter> to exit... Connecting to process: <Full-Path-To-Process-Being-Profiled>/dotnet.exe Collecting to file: <Full-Path-To-Trace>/trace.nettrace Session Id: <SessionId> Recording trace 721.025 (KB)
Stop de verzameling door op de
<Enter>
toets te drukken.dotnet-trace
de logboekregistratie van gebeurtenissen naar het trace.nettrace-bestand wordt voltooid.
Een onderliggende toepassing starten en een tracering verzamelen bij het opstarten met behulp van dotnet-trace
Soms kan het handig zijn om een tracering van een proces te verzamelen van het opstarten. Voor apps met .NET 5 of hoger is het mogelijk om dit te doen met behulp van dotnet-trace.
Hiermee start hello.exe
u met arg1
en arg2
als opdrachtregelargumenten en verzamelt u een tracering vanaf het opstarten van de runtime:
dotnet-trace collect -- hello.exe arg1 arg2
Met de voorgaande opdracht wordt uitvoer gegenereerd die vergelijkbaar is met de volgende:
No profile or providers specified, defaulting to trace profile 'cpu-sampling'
Provider Name Keywords Level Enabled By
Microsoft-DotNETCore-SampleProfiler 0x0000F00000000000 Informational(4) --profile
Microsoft-Windows-DotNETRuntime 0x00000014C14FCCBD Informational(4) --profile
Process : E:\temp\gcperfsim\bin\Debug\net5.0\gcperfsim.exe
Output File : E:\temp\gcperfsim\trace.nettrace
[00:00:00:05] Recording trace 122.244 (KB)
Press <Enter> or <Ctrl+C> to exit...
U kunt het verzamelen van de trace stoppen door op of <Ctrl + C>
in de toets te drukken<Enter>
. Als u dit doet, wordt ook afgesloten hello.exe
.
Notitie
Als u hello.exe
via dotnet-trace start, wordt de invoer/uitvoer omgeleid en kunt u er niet standaard mee werken op de console. Gebruik de --show-child-io
schakeloptie om te communiceren met de stdin/stdout.
Als u het hulpprogramma afsluit via Ctrl+C of SIGTERM, worden zowel het hulpprogramma als het onderliggende proces veilig beëindigd.
Als het onderliggende proces wordt afgesloten voordat het hulpprogramma wordt afgesloten, wordt het hulpprogramma ook afgesloten en moet de trace veilig zichtbaar zijn.
Diagnostische poort gebruiken om een tracering te verzamelen van het opstarten van de app
Diagnostische poort is een runtimefunctie die is toegevoegd in .NET 5 waarmee u tracering kunt starten vanaf het opstarten van de app. Als u dit wilt doen, dotnet-trace
kunt u deze gebruiken dotnet-trace collect -- <command>
zoals beschreven in de bovenstaande voorbeelden of de --diagnostic-port
optie gebruiken.
Het gebruik dotnet-trace <collect|monitor> -- <command>
om de toepassing als onderliggend proces te starten, is de eenvoudigste manier om de toepassing snel te traceren vanaf het opstarten.
Als u echter een nauwkeurigere controle wilt krijgen over de levensduur van de app die wordt getraceerd (bijvoorbeeld de app gedurende de eerste 10 minuten bewaken en doorgaan met uitvoeren) of als u met de CLI wilt communiceren met de app, kunt u met behulp van --diagnostic-port
de optie de doel-app beheren die wordt bewaakt en dotnet-trace
.
Met de onderstaande opdracht maakt
dotnet-trace
u een diagnostische socket met de naammyport.sock
en wacht u op een verbinding.dotnet-trace collect --diagnostic-port myport.sock
Uitvoer:
Waiting for connection on myport.sock Start an application with the following environment variable: DOTNET_DiagnosticPorts=/home/user/myport.sock
Start in een afzonderlijke console de doeltoepassing met de omgevingsvariabele
DOTNET_DiagnosticPorts
die is ingesteld op de waarde in dedotnet-trace
uitvoer.export DOTNET_DiagnosticPorts=/home/user/myport.sock ./my-dotnet-app arg1 arg2
Dit moet vervolgens inschakelen
dotnet-trace
om traceringmy-dotnet-app
te starten:Waiting for connection on myport.sock Start an application with the following environment variable: DOTNET_DiagnosticPorts=myport.sock Starting a counter session. Press Q to quit.
Belangrijk
Het starten van uw app met
dotnet run
kan problematisch zijn omdat de dotnet CLI mogelijk veel onderliggende processen veroorzaakt die niet uw app zijn en waarmee ze verbinding kunnen makendotnet-trace
voordat uw app wordt uitgevoerd, waardoor uw app tijdens runtime wordt onderbroken. Het wordt aanbevolen om rechtstreeks een zelfstandige versie van de app te gebruikendotnet exec
of om de toepassing te starten.
De tracering weergeven die is vastgelegd vanuit dotnet-trace
In Windows kunt u .nettrace-bestanden weergeven in Visual Studio of PerfView voor analyse.
In Linux kunt u de tracering bekijken door de uitvoerindeling van dotnet-trace
te wijzigen in speedscope
. Wijzig de indeling van het uitvoerbestand met behulp van de -f|--format
optie. U kunt kiezen tussen nettrace
(de standaardoptie) en speedscope
. Met de optie -f speedscope
wordt dotnet-trace
een speedscope
bestand geproduceerd. Speedscope
bestanden kunnen worden geopend op https://www.speedscope.app.
Voor traceringen die zijn verzameld op niet-Windows-platforms, kunt u het traceringsbestand ook verplaatsen naar een Windows-computer en het weergeven in Visual Studio of PerfView.
Notitie
De .NET Core-runtime genereert traceringen in de nettrace
indeling. De traceringen worden geconverteerd naar speedscope (indien opgegeven) nadat de tracering is voltooid. Omdat sommige conversies kunnen leiden tot verlies van gegevens, blijft het oorspronkelijke nettrace
bestand behouden naast het geconverteerde bestand.
.rsp-bestand gebruiken om te voorkomen dat lange opdrachten worden getypt
U kunt starten dotnet-trace
met een .rsp
bestand dat de argumenten bevat die moeten worden doorgegeven. Dit kan handig zijn bij het inschakelen van providers die lange argumenten verwachten of wanneer u een shell-omgeving gebruikt waarmee tekens worden gestript.
De volgende provider kan bijvoorbeeld lastig zijn om elke keer dat u wilt traceren uit te voeren:
dotnet-trace collect --providers Microsoft-Diagnostics-DiagnosticSource:0x3:5:FilterAndPayloadSpecs="SqlClientDiagnosticListener/System.Data.SqlClient.WriteCommandBefore@Activity1Start:-Command;Command.CommandText;ConnectionId;Operation;Command.Connection.ServerVersion;Command.CommandTimeout;Command.CommandType;Command.Connection.ConnectionString;Command.Connection.Database;Command.Connection.DataSource;Command.Connection.PacketSize\r\nSqlClientDiagnosticListener/System.Data.SqlClient.WriteCommandAfter@Activity1Stop:\r\nMicrosoft.EntityFrameworkCore/Microsoft.EntityFrameworkCore.Database.Command.CommandExecuting@Activity2Start:-Command;Command.CommandText;ConnectionId;IsAsync;Command.Connection.ClientConnectionId;Command.Connection.ServerVersion;Command.CommandTimeout;Command.CommandType;Command.Connection.ConnectionString;Command.Connection.Database;Command.Connection.DataSource;Command.Connection.PacketSize\r\nMicrosoft.EntityFrameworkCore/Microsoft.EntityFrameworkCore.Database.Command.CommandExecuted@Activity2Stop:",OtherProvider,AnotherProvider
Daarnaast bevat "
het vorige voorbeeld als onderdeel van het argument. Omdat aanhalingstekens niet evenzeer door elke shell worden verwerkt, kunnen er verschillende problemen optreden bij het gebruik van verschillende shells. De opdracht die u wilt invoeren zsh
, is bijvoorbeeld anders dan de opdracht in cmd
.
In plaats van dit elke keer te typen, kunt u de volgende tekst opslaan in een bestand met de naam myprofile.rsp
.
--providers
Microsoft-Diagnostics-DiagnosticSource:0x3:5:FilterAndPayloadSpecs="SqlClientDiagnosticListener/System.Data.SqlClient.WriteCommandBefore@Activity1Start:-Command;Command.CommandText;ConnectionId;Operation;Command.Connection.ServerVersion;Command.CommandTimeout;Command.CommandType;Command.Connection.ConnectionString;Command.Connection.Database;Command.Connection.DataSource;Command.Connection.PacketSize\r\nSqlClientDiagnosticListener/System.Data.SqlClient.WriteCommandAfter@Activity1Stop:\r\nMicrosoft.EntityFrameworkCore/Microsoft.EntityFrameworkCore.Database.Command.CommandExecuting@Activity2Start:-Command;Command.CommandText;ConnectionId;IsAsync;Command.Connection.ClientConnectionId;Command.Connection.ServerVersion;Command.CommandTimeout;Command.CommandType;Command.Connection.ConnectionString;Command.Connection.Database;Command.Connection.DataSource;Command.Connection.PacketSize\r\nMicrosoft.EntityFrameworkCore/Microsoft.EntityFrameworkCore.Database.Command.CommandExecuted@Activity2Stop:",OtherProvider,AnotherProvider
Zodra u het bestand hebt opgeslagen myprofile.rsp
, kunt u met deze configuratie starten dotnet-trace
met behulp van de volgende opdracht:
dotnet-trace @myprofile.rsp