utilitas analisis performa dotnet-trace
Artikel ini berlaku untuk: ✔️ dotnet-trace
3.0.47001 dan versi yang lebih baru
Instal
Ada dua cara untuk mengunduh dan menginstal dotnet-trace
:
alat global dotnet:
Untuk menginstal versi rilis terbaru paket
dotnet-trace
NuGet, gunakan perintah penginstalan alat dotnet:dotnet tool install --global dotnet-trace
Pengunduhan langsung:
Unduh alat yang dapat dijalankan yang cocok dengan platform Anda:
OS Platform Windows x86 | x64 | Arm | Arm-x64 Linux x64 | Arm | Arm64 | musl-x64 | musl-Arm64
Sinopsis
dotnet-trace [-h, --help] [--version] <command>
Deskripsi
Alat dotnet-trace
:
- Adalah alat .NET Core lintas platform.
- Memungkinkan pengumpulan jejak .NET Core dari proses yang sedang berjalan tanpa profiler asli.
- Dibangun pada
EventPipe
runtime bahasa umum .NET Core. - Memberikan pengalaman yang sama di Windows, Linux, atau macOS.
Opsi
-h|--help
Tampilkan bantuan baris perintah.
--version
Menampilkan versi utilitas dotnet-trace.
--duration
Berapa lama untuk menjalankan jejak.
--duration 00:00:00:05
akan menjalankannya selama 5 detik.
Perintah
Perintah |
---|
dotnet-trace collect |
dotnet-trace convert |
dotnet-trace ps |
dotnet-trace list-profiles |
dotnet-trace report |
dotnet-trace collect
Mengumpulkan jejak diagnostik dari proses yang sedang berjalan atau meluncurkan proses anak dan melacaknya (.NET 5 atau yang lebih baru). Agar alat menjalankan proses anak dan melacaknya dari startup-nya, tambahkan --
ke perintah kumpulkan.
Sinopsis
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>]
Opsi
--buffersize <size>
Mengatur ukuran buffer dalam memori, dalam megabyte. Default 256 MB.
Catatan
Jika proses target memancarkan peristiwa lebih cepat daripada yang dapat ditulis ke disk, buffer ini mungkin meluap dan beberapa peristiwa akan dihilangkan. Anda dapat mengurangi masalah ini dengan meningkatkan ukuran buffer atau mengurangi jumlah peristiwa yang direkam.
--clreventlevel <clreventlevel>
Verbositas peristiwa CLR yang akan dipancarkan. Tabel berikut ini memperlihatkan tingkat peristiwa yang tersedia.
Nilai untai (karakter) Nilai numerik logalways
0
critical
1
error
2
warning
3
informational
4
verbose
5
--clrevents <clrevents>
Daftar kata kunci penyedia runtime CLR untuk mengaktifkan dipisahkan oleh tanda
+
. Ini adalah pemetaan sederhana yang memungkinkan Anda menentukan kata kunci peristiwa melalui alias string daripada nilai heksanya. Misalnya,dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:3:4
meminta serangkaian peristiwa yang sama dengandotnet-trace collect --clrevents gc+gchandle --clreventlevel informational
. Tabel di bawah ini memperlihatkan daftar kata kunci yang tersedia:Alias String Kata Kunci Nilai Heksa Kata Kunci 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
Anda dapat membaca tentang penyedia CLR secara lebih rinci tentang dokumentasi referensi penyedia runtime .NET.
--format {Chromium|NetTrace|Speedscope}
Mengatur format output untuk konversi file pelacakan. Default adalah
NetTrace
.-n, --name <name>
Nama proses untuk mengumpulkan jejak.
--diagnostic-port <path-to-port>
Nama port diagnostik yang akan dibuat. Lihat Menggunakan port diagnostik untuk mengumpulkan jejak dari startup aplikasi untuk mempelajari cara menggunakan opsi ini untuk mengumpulkan jejak dari startup aplikasi.
--duration <time-to-run>
Waktu untuk pelacakan berjalan. Gunakan format .
dd:hh:mm:ss
Misalnya00:00:00:05
akan menjalankannya selama 5 detik.-o|--output <trace-file-path>
Jalur output untuk data pelacakan yang dikumpulkan. Jika tidak ditentukan, defaultnya adalah
<appname>_<yyyyMMdd>_<HHmmss>.nettrace
, misalnya, 'myapp_20210315_111514.nettrace''.-p|--process-id <PID>
ID proses untuk mengumpulkan jejak.
--profile <profile-name>
Sekumpulan konfigurasi penyedia bernama yang telah ditentukan sebelumnya yang memungkinkan skenario pelacakan umum ditentukan secara singkat. Profil berikut ini tersedia:
Profil | Deskripsi |
---|---|
cpu-sampling |
Berguna untuk melacak penggunaan CPU dan informasi runtime bahasa umum .NET umum. Ini adalah opsi default jika tidak ada profil atau penyedia yang ditentukan. |
gc-verbose |
Melacak koleksi pengumpulan sampah dan sampel alokasi objek. |
gc-collect |
Melacak koleksi pengumpulan sampah hanya pada overhead yang sangat rendah. |
--providers <list-of-comma-separated-providers>
Daftar yang dipisahkan koma penyedia
EventPipe
untuk diaktifkan. Penyedia ini melengkapi penyedia apa pun yang tersirat oleh--profile <profile-name>
. Jika ada ketidakkonsistensian untuk penyedia tertentu, konfigurasi ini lebih diutamakan daripada konfigurasi implisit dari profil.Daftar penyedia ini ada dalam formulir:
Provider[,Provider]
Provider
dalam bentuk:KnownProviderName[:Flags[:Level][:KeyValueArgs]]
.KeyValueArgs
dalam bentuk:[key1=value1][;key2=value2]
.
Untuk mempelajari lebih lanjut tentang beberapa penyedia terkenal di .NET, lihat Penyedia Peristiwa terkenal.
-- <command>
(untuk aplikasi target yang menjalankan .NET 5 atau yang lebih baru)Setelah parameter konfigurasi pengumpulan, pengguna dapat menambahkan
--
diikuti dengan perintah untuk memulai aplikasi .NET dengan setidaknya runtime 5.0. Ini mungkin berguna saat mendiagnosis masalah yang terjadi di awal proses, seperti masalah performa startup atau pemuat rakitan dan kesalahan pengikat.Catatan
Menggunakan opsi ini memantau proses .NET pertama yang berkomunikasi kembali ke alat, yang berarti jika perintah Anda meluncurkan beberapa aplikasi .NET, itu hanya akan mengumpulkan aplikasi pertama. Oleh karena itu, disarankan agar Anda menggunakan opsi ini pada aplikasi mandiri, atau menggunakan opsi
dotnet exec <app.dll>
.--show-child-io
Menampilkan aliran input dan output dari proses anak yang diluncurkan di konsol saat ini.
--resume-runtime
Lanjutkan runtime setelah sesi diinisialisasi, default ke true. Nonaktifkan resume runtime menggunakan --resume-runtime:false.
--stopping-event-provider-name
String, diurai apa adanya, yang akan menghentikan jejak setelah mencapai peristiwa dengan nama penyedia yang cocok. Untuk acara penghentian yang lebih spesifik, berikan
--stopping-event-event-name
dan/atau--stopping-event-payload-filter
. misalnya--stopping-event-provider-name Microsoft-Windows-DotNETRuntime
untuk menghentikan jejak setelah mencapai peristiwa pertama yang dipancarkan olehMicrosoft-Windows-DotNETRuntime
penyedia acara.--stopping-event-event-name
String, diurai apa adanya, yang akan menghentikan jejak setelah mencapai peristiwa dengan nama peristiwa yang cocok.
--stopping-event-provider-name
Perlu diatur. Untuk acara penghentian yang lebih spesifik, berikan--stopping-event-payload-filter
juga . misalnya--stopping-event-provider-name Microsoft-Windows-DotNETRuntime --stopping-event-event-name Method/JittingStarted
untuk menghentikan jejak setelah mencapai peristiwa pertamaMethod/JittingStarted
yang dipancarkan olehMicrosoft-Windows-DotNETRuntime
penyedia acara.--stopping-event-payload-filter
String, diurai sebagai pasangan [payload_field_name]:[payload_field_value] yang dipisahkan oleh koma, yang akan menghentikan jejak saat mencapai peristiwa yang berisi semua pasangan payload yang ditentukan.
--stopping-event-provider-name
Memerlukan dan--stopping-event-event-name
untuk diatur. misalnya--stopping-event-provider-name Microsoft-Windows-DotNETRuntime --stopping-event-event-name Method/JittingStarted --stopping-event-payload-filter MethodNameSpace:Program,MethodName:OnButtonClick
untuk menghentikan jejak pada peristiwa pertamaMethod/JittingStarted
untuk metodeOnButtonClick
di namespace yang dipancarkanProgram
olehMicrosoft-Windows-DotNETRuntime
penyedia peristiwa.
Catatan
- Menghentikan pelacakan mungkin memakan waktu lama (hingga menit) untuk aplikasi besar. Runtime perlu mengirim cache jenis untuk semua kode terkelola yang diambil dalam jejak.
- Di Linux dan macOS, perintah ini mengharapkan aplikasi target dan
dotnet-trace
untuk membagikan variabel lingkunganTMPDIR
yang sama. Jika tidak, perintah akan kehabisan waktu.
- Untuk mengumpulkan pelacakan menggunakan
dotnet-trace
, metrik perlu dijalankan sebagai pengguna yang sama dengan pengguna yang menjalankan proses target atau sebagai akar. Jika tidak, alat akan gagal membuat koneksi dengan proses target.
- Jika Anda mengalami pengecualian yang tidak tertangani saat menjalankan
dotnet-trace collect
, ini menghasilkan jejak yang tidak lengkap. Jika menemukan akar penyebab pengecualian adalah prioritas Anda, navigasi ke Kumpulkan crash dump saat crash. Sebagai akibat dari pengecualian yang tidak tertangani, jejak dipotong ketika runtime dimatikan untuk mencegah perilaku lain yang tidak diinginkan seperti hang atau kerusakan data. Meskipun jejak tidak lengkap, Anda masih dapat membukanya untuk melihat apa yang terjadi menjelang kegagalan. Namun, itu akan kehilangan informasi Rundown (ini terjadi di akhir jejak) sehingga tumpukan mungkin tidak terselesaikan (tergantung pada penyedia apa yang diaktifkan). Buka jejak dengan mengeksekusi PerfView dengan bendera/ContinueOnError
di baris perintah. Log juga akan berisi lokasi pengecualian dipicu.
- Saat menentukan peristiwa penghentian melalui
--stopping-event-*
opsi, karena EventStream sedang diurai secara asinkron, akan ada beberapa peristiwa yang diteruskan di antara waktu peristiwa pelacakan yang cocok dengan opsi peristiwa penghentian yang ditentukan diurai dan EventPipeSession dihentikan.
dotnet-trace convert
Mengonversi pelacakan nettrace
ke format alternatif untuk digunakan dengan alat analisis jejak alternatif.
Sinopsis
dotnet-trace convert [<input-filename>] [--format <Chromium|NetTrace|Speedscope>] [-h|--help] [-o|--output <output-filename>]
Argumen
<input-filename>
File pelacakan input yang akan dikonversi. Default ke trace.nettrace.
Opsi
--format <Chromium|NetTrace|Speedscope>
Mengatur format output untuk konversi file pelacakan.
-o|--output <output-filename>
Filename output. Ekstensi format target akan ditambahkan.
Catatan
Mengonversi file nettrace
ke chromium
atau file speedscope
tidak dapat diubah. File speedscope
dan chromium
tidak memiliki semua informasi yang diperlukan untuk membuat ulang file nettrace
. Namun, perintah convert
mempertahankan file nettrace
asli, jadi jangan hapus file ini jika Anda berencana untuk membukanya di masa mendatang.
dotnet-trace ps
Mencantumkan proses dotnet tempat pelacakan dapat dikumpulkan.
dotnet-trace
6.0.320703 dan yang lebih baru, juga menampilkan argumen baris perintah yang dimulai setiap proses, jika tersedia.
Catatan
Untuk mendapatkan informasi lengkap untuk proses 64 bit yang dijumlahkan, Anda perlu menggunakan alat versi dotnet-trace
64-bit.
Sinopsis
dotnet-trace ps [-h|--help]
Contoh
Misalkan Anda memulai aplikasi yang berjalan lama menggunakan perintah dotnet run --configuration Release
. Di jendela lain, Anda menjalankan perintah dotnet-trace ps
. Output yang akan Anda lihat adalah sebagai berikut. Argumen baris perintah, jika ada, ditampilkan dalam dotnet-trace
versi 6.0.320703 dan yang lebih baru.
> 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
Mencantumkan profil pelacakan bawaan dengan deskripsi penyedia dan filter apa yang ada di setiap profil.
Sinopsis
dotnet-trace list-profiles [-h|--help]
dotnet-trace report
Membuat laporan ke stdout dari jejak yang dihasilkan sebelumnya.
Sinopsis
dotnet-trace report [-h|--help] <tracefile> [command]
Argumen
<tracefile>
Jalur file untuk pelacakan yang dianalisis.
Perintah
dotnet-trace report topN
Menemukan metode N teratas yang telah berada di callstack paling lama.
Sinopsis
dotnet-trace report <tracefile> topN [-n|--number <n>] [--inclusive] [-v|--verbose] [-h|--help]
Opsi
-n|--number <n>
Memberikan metode N teratas pada callstack.
--inclusive
Keluarkan metode N teratas berdasarkan waktu inklusif. Jika tidak ditentukan, waktu eksklusif digunakan secara default.
-v|--verbose
Keluarkan parameter dari setiap metode secara penuh. Jika tidak ditentukan, parameter akan dipotong.
Mengumpulkan jejak dengan dotnet-trace
Untuk mengumpulkan jejak menggunakan dotnet-trace
:
Dapatkan pengidentifikasi proses (PID) dari aplikasi .NET Core untuk mengumpulkan jejak.
- Di Windows, Anda dapat menggunakan Manajer Tugas atau perintah
tasklist
, misalnya. - Di Linux, misalnya, perintah
ps
. - dotnet-trace ps
- Di Windows, Anda dapat menggunakan Manajer Tugas atau perintah
Jalankan perintah berikut:
dotnet-trace collect --process-id <PID>
Perintah sebelumnya menghasilkan output yang mirip dengan berikut ini:
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)
Hentikan pengumpulan dengan menekan tombol
<Enter>
.dotnet-trace
akan menyelesaikan peristiwa pengelogan ke file trace.nettrace.
Luncurkan aplikasi anak dan kumpulkan jejak dari startup-nya menggunakan dotnet-trace
Terkadang mungkin berguna untuk mengumpulkan jejak proses dari startup-nya. Untuk aplikasi yang menjalankan .NET 5 atau yang lebih baru, dimungkinkan untuk melakukan ini dengan menggunakan dotnet-trace.
Ini akan diluncurkan hello.exe
dengan arg1
dan arg2
sebagai argumen baris perintahnya dan mengumpulkan jejak dari startup runtime-nya:
dotnet-trace collect -- hello.exe arg1 arg2
Perintah sebelumnya menghasilkan output yang mirip dengan berikut ini:
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...
Anda dapat berhenti mengumpulkan jejak dengan menekan tombol <Enter>
atau <Ctrl + C>
. Melakukan ini juga akan mengeluarkan hello.exe
.
Catatan
Meluncurkan hello.exe
melalui dotnet-trace akan mengalihkan input/output-nya dan Anda tidak akan dapat berinteraksi dengannya di konsol secara default. Gunakan sakelar --show-child-io
untuk berinteraksi dengan stdin/stdout-nya.
Keluar dari alat melalui CTRL+C atau SIGTERM akan dengan aman mengakhiri alat dan proses anak.
Jika proses anak keluar sebelum alat, alat akan keluar juga dan jejak harus dapat dilihat dengan aman.
Menggunakan port diagnostik untuk mengumpulkan jejak dari startup aplikasi
Port diagnostik adalah fitur runtime bahasa umum yang ditambahkan di .NET 5 yang memungkinkan Anda memulai pelacakan dari startup aplikasi. Untuk melakukan ini menggunakan dotnet-trace
, Anda dapat menggunakan dotnet-trace collect -- <command>
seperti yang dijelaskan dalam contoh di atas, atau menggunakan opsi --diagnostic-port
.
Menggunakan dotnet-trace <collect|monitor> -- <command>
untuk meluncurkan aplikasi sebagai proses anak adalah cara paling sederhana untuk dengan cepat melacak aplikasi dari startup-nya.
Namun, ketika Anda ingin mendapatkan kontrol yang lebih baik selama masa pakai aplikasi yang dilacak (misalnya, pantau aplikasi selama 10 menit pertama saja dan lanjutkan eksekusi) atau jika Anda perlu berinteraksi dengan aplikasi menggunakan CLI, menggunakan opsi --diagnostic-port
memungkinkan Anda mengontrol aplikasi target yang dipantau dan dotnet-trace
.
Perintah di bawah ini membuat soket
dotnet-trace
diagnostik bernamamyport.sock
dan menunggu koneksi.dotnet-trace collect --diagnostic-port myport.sock
Output:
Waiting for connection on myport.sock Start an application with the following environment variable: DOTNET_DiagnosticPorts=/home/user/myport.sock
Di konsol terpisah, luncurkan aplikasi target dengan variabel lingkungan
DOTNET_DiagnosticPorts
yang diatur ke nilai dalam outputdotnet-trace
.export DOTNET_DiagnosticPorts=/home/user/myport.sock ./my-dotnet-app arg1 arg2
Ini kemudian harus mengaktifkan
dotnet-trace
untuk memulai pelacakanmy-dotnet-app
: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.
Penting
Meluncurkan aplikasi
dotnet run
Anda dapat bermasalah karena CLI dotnet mungkin menghasilkan banyak proses turunan yang bukan aplikasi Anda dan dapat terhubung kedotnet-trace
sebelum aplikasi Anda, sehingga aplikasi Anda ditangguhkan pada durasi. Disarankan Anda langsung menggunakan versi aplikasi mandiri atau menggunakandotnet exec
untuk meluncurkan aplikasi.
Melihat jejak yang diambil dari dotnet-trace
Di Windows, Anda dapat melihat file .nettrace di Visual Studio atau PerfView untuk analisis.
Di Linux, Anda dapat melihat jejak dengan mengubah format output dotnet-trace
menjadi speedscope
. Ubah format file output dengan menggunakan opsi -f|--format
. Anda dapat memilih antara nettrace
(opsi default) dan speedscope
. Opsi -f speedscope
ini akan membuat dotnet-trace
menghasilkan file speedscope
. File Speedscope
dapat dibuka di https://www.speedscope.app.
Untuk jejak yang dikumpulkan pada platform non-Windows, Anda juga dapat memindahkan file jejak ke komputer Windows dan melihatnya di Visual Studio atau PerfView.
Catatan
Runtime bahasa umum .NET Core menghasilkan jejak dalam format nettrace
. Jejak dikonversi menjadi speedscope (jika ditentukan) setelah pelacakan selesai. Karena beberapa konversi dapat mengakibatkan hilangnya data, file nettrace
asli dipertahankan di samping file yang dikonversi.
Gunakan file .rsp untuk menghindari mengetik perintah panjang
Anda dapat meluncurkan dotnet-trace
dengan file .rsp
yang berisi argumen yang akan diteruskan. Ini dapat berguna saat mengaktifkan penyedia yang mengharapkan argumen panjang atau saat menggunakan lingkungan shell yang menghapus karakter.
Misalnya, penyedia berikut dapat rumit untuk mengetik setiap kali Anda ingin melacak:
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
Selain itu, contoh sebelumnya berisi "
sebagai bagian dari argumen. Karena tanda kutip tidak ditangani secara merata oleh setiap shell, Anda mungkin mengalami berbagai masalah saat menggunakan shell yang berbeda. Misalnya, perintah untuk dimasukkan zsh
berbeda dengan perintah di cmd
.
Daripada mengetik ini setiap kali, Anda dapat menyimpan teks berikut ke dalam file yang disebut 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
Setelah menyimpan myprofile.rsp
, Anda dapat meluncurkan dotnet-trace
dengan konfigurasi ini menggunakan perintah berikut:
dotnet-trace @myprofile.rsp