dotnet-trace performans analizi yardımcı programı
Bu makale şunlar için geçerlidir: ✔️ dotnet-trace
3.0.47001 ve sonraki sürümler
Yükleme
İndirmenin ve yüklemenin dotnet-trace
iki yolu vardır:
dotnet genel aracı:
NuGet paketinin en son sürüm sürümünü
dotnet-trace
yüklemek için dotnet tool install komutunu kullanın:dotnet tool install --global dotnet-trace
Doğrudan indirme:
Platformunuzla eşleşen araç yürütülebilir dosyasını indirin:
OS Platform Windows x86 | x64 | Arm | Arm-x64 Linux x64 | Arm | Arm64 | musl-x64 | musl-Arm64
Özet
dotnet-trace [-h, --help] [--version] <command>
Açıklama
Araç dotnet-trace
:
- Platformlar arası bir .NET Core aracıdır.
- Yerel profil oluşturucu olmadan çalışan bir işlemin .NET Core izlemelerinin toplanmasını sağlar.
- .NET Core çalışma zamanını temel alır
EventPipe
. - Windows, Linux veya macOS'ta aynı deneyimi sunar.
Seçenekler
-h|--help
Komut satırı yardımlarını gösterir.
--version
dotnet-trace yardımcı programının sürümünü görüntüler.
--duration
İzlemenin ne kadar süreyle çalıştırılır?
--duration 00:00:00:05
5 saniye boyunca çalıştırır.
Komutlar
Command |
---|
dotnet-trace collect |
dotnet-trace convert |
dotnet-trace ps |
dotnet-trace list-profiles |
dotnet-trace raporu |
dotnet-trace collect
Çalışan bir işlemden tanılama izlemesi toplar veya bir alt işlemi başlatır ve izler (.NET 5 veya üzeri). Aracın bir alt işlemi çalıştırmasını ve başlangıçtan izlemesini sağlamak için collect komutuna ekleme --
.
Özet
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>]
Seçenekler
--buffersize <size>
Bellek içi arabelleğin boyutunu megabayt cinsinden ayarlar. Varsayılan 256 MB.
Not
Hedef işlem olayları diske yazılamayacak kadar hızlı yayarsa, bu arabellek taşabilir ve bazı olaylar bırakılır. Arabellek boyutunu artırarak veya kaydedilen olay sayısını azaltarak bu sorunu azaltabilirsiniz.
--clreventlevel <clreventlevel>
Yayılacak CLR olaylarının ayrıntı düzeyi. Aşağıdaki tabloda kullanılabilir olay düzeyleri gösterilmektedir.
Dize değeri seçeneğini belirleyin Sayısal değer logalways
0
critical
1
error
2
warning
3
informational
4
verbose
5
--clrevents <clrevents>
İşaretlerle ayrılmış
+
olarak etkinleştirilebilmesi için CLR çalışma zamanı sağlayıcısı anahtar sözcüklerinin listesi. Bu, olay anahtar sözcüklerini onaltılık değerleri yerine dize diğer adları aracılığıyla belirtmenize olanak tanıyan basit bir eşlemedir. Örneğin,dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:3:4
ile aynı olaydotnet-trace collect --clrevents gc+gchandle --clreventlevel informational
kümesini istemektedir. Aşağıdaki tabloda kullanılabilir anahtar sözcüklerin listesi gösterilmektedir:Anahtar Sözcük Dizesi Diğer Adı Anahtar Sözcük Onaltılık Değeri 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
.NET çalışma zamanı sağlayıcısı başvuru belgelerinde CLR sağlayıcısı hakkında daha ayrıntılı bilgi edinebilirsiniz.
--format {Chromium|NetTrace|Speedscope}
İzleme dosyası dönüştürme için çıkış biçimini ayarlar. Varsayılan değer:
NetTrace
.-n, --name <name>
İzlemeyi toplayacak işlemin adı.
--diagnostic-port <path-to-port>
Oluşturulacak tanılama bağlantı noktasının adı. Uygulama başlangıcından izleme toplamak için bu seçeneği nasıl kullanacağınızı öğrenmek için bkz . Uygulama başlangıcından izleme toplamak için tanılama bağlantı noktasını kullanma.
--duration <time-to-run>
İzlemenin çalıştırılacak zamanı.
dd:hh:mm:ss
Biçimini kullanın. Örneğin00:00:00:05
, 5 saniye boyunca çalıştırılır.-o|--output <trace-file-path>
Toplanan izleme verilerinin çıkış yolu. Belirtilmezse varsayılan olarak
<appname>_<yyyyMMdd>_<HHmmss>.nettrace
'myapp_20210315_111514.nettrace'' olur.-p|--process-id <PID>
İzlemeyi toplamak için işlem kimliği.
--profile <profile-name>
Yaygın izleme senaryolarının kısa bir şekilde belirtilmesine izin veren, önceden tanımlanmış adlandırılmış bir sağlayıcı yapılandırma kümesi. Aşağıdaki profiller kullanılabilir:
Profil | Açıklama |
---|---|
cpu-sampling |
CPU kullanımını ve genel .NET çalışma zamanı bilgilerini izlemek için kullanışlıdır. Profil veya sağlayıcı belirtilmezse bu varsayılan seçenektir. |
gc-verbose |
GC koleksiyonlarını ve örnek nesne ayırmalarını izler. |
gc-collect |
GC koleksiyonlarını yalnızca çok düşük ek yükte izler. |
--providers <list-of-comma-separated-providers>
Etkinleştirilecek sağlayıcıların
EventPipe
virgülle ayrılmış listesi. Bu sağlayıcılar tarafından--profile <profile-name>
ima edilen tüm sağlayıcıları destekler. Belirli bir sağlayıcı için herhangi bir tutarsızlık varsa, bu yapılandırma profilden örtük yapılandırmaya göre önceliklidir.Bu sağlayıcı listesi şu biçimdedir:
Provider[,Provider]
Provider
biçimindedir:KnownProviderName[:Flags[:Level][:KeyValueArgs]]
.KeyValueArgs
biçimindedir:[key1=value1][;key2=value2]
.
.NET'teki bazı iyi bilinen sağlayıcılar hakkında daha fazla bilgi edinmek için bkz. İyi bilinen Olay Sağlayıcıları.
-- <command>
(.NET 5 veya üzerini çalıştıran hedef uygulamalar için)Koleksiyon yapılandırma parametrelerinden sonra, kullanıcı en az 5.0 çalışma zamanına sahip bir .NET uygulaması başlatmak için bir komut ekleyebilir
--
. Bu, başlangıç performansı sorunu veya derleme yükleyicisi ve bağlayıcı hataları gibi sürecin erken aşamalarında oluşan sorunları tanılarken yararlı olabilir.Not
Bu seçeneğin kullanılması, araca geri iletişim kuran ilk .NET işlemini izler, yani komutunuz birden çok .NET uygulaması başlatırsa yalnızca ilk uygulamayı toplar. Bu nedenle, bu seçeneği bağımsız uygulamalarda veya seçeneğini kullanarak kullanmanız
dotnet exec <app.dll>
önerilir.--show-child-io
Geçerli konsolda başlatılan bir alt işlemin giriş ve çıkış akışlarını gösterir.
--resume-runtime
Oturum başlatıldıktan sonra çalışma zamanını sürdür, varsayılan olarak true olur. --resume-runtime:false kullanarak çalışma zamanının sürdürülme özelliğini devre dışı bırakın.
--stopping-event-provider-name
Eşleşen sağlayıcı adıyla bir olaya ulaşıldığında izlemeyi durduran, olduğu gibi ayrıştırılan bir dize. Daha belirgin bir durdurma olayı için ayrıca ve/veya
--stopping-event-payload-filter
sağlayın--stopping-event-event-name
. örneğin--stopping-event-provider-name Microsoft-Windows-DotNETRuntime
, olay sağlayıcısı tarafından yayılan ilk olaya ulaşılırken izlemeninMicrosoft-Windows-DotNETRuntime
durdurulması.--stopping-event-event-name
Eşleşen olay adıyla bir olaya ulaşıldığında izlemeyi durduran, olduğu gibi ayrıştırılmış bir dize.
--stopping-event-provider-name
Ayarlanması gerekir. Daha belirgin bir durdurma olayı için ek olarak sağlayın--stopping-event-payload-filter
. örneğin--stopping-event-provider-name Microsoft-Windows-DotNETRuntime --stopping-event-event-name Method/JittingStarted
, olay sağlayıcısı tarafından yayılan ilkMethod/JittingStarted
olaya ulaşılırken izlemeninMicrosoft-Windows-DotNETRuntime
durdurulması.--stopping-event-payload-filter
[payload_field_name]:[payload_field_value] çiftleri virgülle ayrılmış olarak ayrıştırılan bir dize, belirtilen tüm yük çiftlerini içeren bir olaya ulaşıldığında izlemeyi durdurur.
--stopping-event-provider-name
Ve'nin--stopping-event-event-name
ayarlanması gerekir. örneğin--stopping-event-provider-name Microsoft-Windows-DotNETRuntime --stopping-event-event-name Method/JittingStarted --stopping-event-payload-filter MethodNameSpace:Program,MethodName:OnButtonClick
, olay sağlayıcısı tarafından yayılan ad alanındakiProgram
yönteminOnButtonClick
ilkMethod/JittingStarted
olayında izlemeninMicrosoft-Windows-DotNETRuntime
durdurulması.
Not
- İzlemenin durdurulması büyük uygulamalar için uzun sürebilir (dakikalara kadar). Çalışma zamanının izlemede yakalanan tüm yönetilen kodlar için tür önbelleği üzerinden göndermesi gerekir.
- Linux ve macOS'ta bu komut hedef uygulamanın ve
dotnet-trace
aynıTMPDIR
ortam değişkenini paylaşmasını bekler. Aksi takdirde, komut zaman aşımına uğradı.
- kullanarak
dotnet-trace
bir izleme toplamak için hedef işlemi çalıştıran kullanıcıyla aynı kullanıcı veya kök olarak çalıştırılması gerekir. Aksi takdirde araç hedef işlemle bağlantı kuramaz.
- komutunu çalıştırırken
dotnet-trace collect
işlenmeyen bir özel durumla karşılaşırsanız bu, tamamlanmamış bir izlemeyle sonuçlanırsa. Önceliğiniz özel durumun kök nedenini bulmaksa Kilitlenme durumunda dökümleri toplama bölümüne gidin. İşlenmeyen özel durumun bir sonucu olarak, çalışma zamanı kapatıldığında kilitlenme veya veri bozulması gibi diğer istenmeyen davranışları önlemek için izleme kesilir. İzleme tamamlanmamış olsa da, hataya neden olan şeyleri görmek için yine de bunu açabilirsiniz. Ancak, yığınların çözümlenebilmesi için (hangi sağlayıcıların açık olduğuna bağlı olarak) Rundown bilgileri eksik olacaktır (bu, izlemenin sonunda gerçekleşir). Komut satırında bayrağıyla/ContinueOnError
PerfView'ı yürüterek izlemeyi açın. Günlükler, özel durumun tetiklendiği konumu da içerir.
- EventStream zaman uyumsuz olarak ayrıştırıldığından
--stopping-event-*
, seçenekler aracılığıyla bir durdurma olayı belirtirken, belirtilen durdurma olayı seçenekleriyle eşleşen bir izleme olayının ayrıştırılması ve EventPipeSession'ın durdurulması arasında geçen bazı olaylar olacaktır.
dotnet-trace convert
İzlemeleri nettrace
alternatif izleme çözümleme araçlarıyla kullanılmak üzere alternatif biçimlere dönüştürür.
Özet
dotnet-trace convert [<input-filename>] [--format <Chromium|NetTrace|Speedscope>] [-h|--help] [-o|--output <output-filename>]
Bağımsız değişkenler
<input-filename>
Dönüştürülecek giriş izleme dosyası. Varsayılan olarak trace.nettrace olarak değiştirilir.
Seçenekler
--format <Chromium|NetTrace|Speedscope>
İzleme dosyası dönüştürme için çıkış biçimini ayarlar.
-o|--output <output-filename>
Çıktı dosya adı. Hedef biçimin uzantısı eklenir.
Not
nettrace
Dosyaları veya speedscope
dosyaları chromium
dönüştürme işlemi geri alınamaz. speedscope
ve chromium
dosyalar, dosyaları yeniden yapılandırmak nettrace
için gereken tüm bilgilere sahip değildir. Ancak, convert
komut özgün nettrace
dosyayı korur, bu nedenle gelecekte açmayı planlıyorsanız bu dosyayı silmeyin.
dotnet-trace ps
İzlemelerin toplanabileceği dotnet işlemlerini listeler.
dotnet-trace
6.0.320703 ve üzeri, varsa her işlemin başlatıldığı komut satırı bağımsız değişkenlerini de görüntüler.
Not
Numaralandırılmış 64 bit işlemleriyle ilgili tam bilgi almak için aracın 64 bit sürümünü dotnet-trace
kullanmanız gerekir.
Özet
dotnet-trace ps [-h|--help]
Örnek
komutunu dotnet run --configuration Release
kullanarak uzun süre çalışan bir uygulama başlattığınızı varsayalım. Başka bir pencerede komutunu çalıştırırsınız dotnet-trace ps
. Göreceğiniz çıkış aşağıdaki gibidir. Varsa, komut satırı bağımsız değişkenleri 6.0.320703 ve sonraki sürümlerde dotnet-trace
gösterilir.
> 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
Her profilde hangi sağlayıcıların ve filtrelerin olduğunu açıklayan önceden oluşturulmuş izleme profillerini listeler.
Özet
dotnet-trace list-profiles [-h|--help]
dotnet-trace raporu
Daha önce oluşturulmuş bir izlemeden stdout'a bir rapor oluşturur.
Özet
dotnet-trace report [-h|--help] <tracefile> [command]
Bağımsız değişkenler
<tracefile>
Çözümlenen izlemenin dosya yolu.
Komutlar
dotnet-trace report topN
Çağrı yığınında en uzun olan en iyi N yöntemlerini bulur.
Özet
dotnet-trace report <tracefile> topN [-n|--number <n>] [--inclusive] [-v|--verbose] [-h|--help]
Seçenekler
-n|--number <n>
Çağrı yığınındaki en iyi N yöntemlerini verir.
--inclusive
Kapsayıcı saate göre en iyi N yöntemlerinin çıkışını alın. Belirtilmezse, özel kullanım süresi varsayılan olarak kullanılır.
-v|--verbose
Her yöntemin parametrelerini tam olarak çıktısını alır. Belirtilmezse, parametreler kesilir.
dotnet-trace ile izleme toplama
kullanarak dotnet-trace
izlemeleri toplamak için:
İzlemeleri toplamak için .NET Core uygulamasının işlem tanımlayıcısını (PID) alın.
- Windows'da Görev Yöneticisi'ni
tasklist
veya komutunu kullanabilirsiniz. - Örneğin
ps
Linux'ta komutu. - dotnet-trace ps
- Windows'da Görev Yöneticisi'ni
Şu komutu çalıştırın:
dotnet-trace collect --process-id <PID>
Yukarıdaki komut aşağıdakine benzer bir çıkış oluşturur:
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)
Tuşuna basarak toplamayı
<Enter>
durdurun.dotnet-trace
, olayları trace.nettrace dosyasına kaydetmeyi tamamlar.
Dotnet-trace kullanarak bir alt uygulama başlatın ve başlangıçtan bir izleme toplayın
Bazen başlangıçtan bir işlemin izlemesini toplamak yararlı olabilir. .NET 5 veya üzerini çalıştıran uygulamalar için bunu dotnet-trace kullanarak yapmak mümkündür.
Bu, komut satırı bağımsız değişkenleri olarak ve arg2
ile arg1
başlatılır hello.exe
ve çalışma zamanı başlangıcından bir izleme toplar:
dotnet-trace collect -- hello.exe arg1 arg2
Yukarıdaki komut aşağıdakine benzer bir çıkış oluşturur:
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...
veya <Ctrl + C>
tuşuna basarak <Enter>
izlemeyi toplamayı durdurabilirsiniz. Bunu yaptığınızda da uygulamasından çıkılır hello.exe
.
Not
hello.exe
dotnet-trace aracılığıyla başlatıldığında giriş/çıkış yeniden yönlendirilir ve varsayılan olarak konsolda onunla etkileşim kuramazsınız. --show-child-io
anahtarını kullanarak stdin/stdout ile etkileşime geçin.
CTRL+C veya SIGTERM aracılığıyla araçdan çıkmak hem aracı hem de alt işlemi güvenli bir şekilde sonlandıracaktır.
Alt işlem araçdan önce çıkarsa, araç da çıkar ve izleme güvenli bir şekilde görüntülenebilir olmalıdır.
Uygulama başlangıcından izleme toplamak için tanılama bağlantı noktasını kullanma
Tanılama bağlantı noktası , .NET 5'te eklenen ve uygulama başlangıcından izlemeye başlamanızı sağlayan bir çalışma zamanı özelliğidir. Bunu kullanarak dotnet-trace
yapmak için yukarıdaki örneklerde açıklandığı gibi kullanabilir dotnet-trace collect -- <command>
veya seçeneğini kullanabilirsiniz --diagnostic-port
.
dotnet-trace <collect|monitor> -- <command>
Uygulamayı alt işlem olarak başlatmak için kullanmak, uygulamayı başlangıçtan hızla izlemenin en kolay yoludur.
Ancak, izlenen uygulamanın ömrü üzerinde daha ayrıntılı bir denetim elde etmek istediğinizde (örneğin, uygulamayı yalnızca ilk 10 dakika izleyin ve yürütmeye devam edin) veya CLI kullanarak uygulamayla etkileşime geçmeniz gerekiyorsa, seçeneğini kullanarak --diagnostic-port
hem izlenen dotnet-trace
hedef uygulamayı hem de öğesini denetlemenize olanak tanır.
Aşağıdaki
dotnet-trace
komut adlımyport.sock
bir tanılama yuvası oluşturur ve bağlantı bekler.dotnet-trace collect --diagnostic-port myport.sock
Çıktı:
Waiting for connection on myport.sock Start an application with the following environment variable: DOTNET_DiagnosticPorts=/home/user/myport.sock
Ayrı bir konsolda, ortam değişkeni
DOTNET_DiagnosticPorts
çıkıştakidotnet-trace
değere ayarlanmış şekilde hedef uygulamayı başlatın.export DOTNET_DiagnosticPorts=/home/user/myport.sock ./my-dotnet-app arg1 arg2
Bu, izlemeyi
my-dotnet-app
başlatmak için etkinleştirilmelidirdotnet-trace
: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.
Önemli
dotnet run
dotnet CLI'sı uygulamanız olmayan ve uygulamanızdan önce bağlanabilendotnet-trace
birçok alt işlem ortaya çıkarabildiğinden uygulamanızın başlatılması sorun olabilir ve bu işlem uygulamanızı çalışma zamanında askıya alınır duruma bırakır. Doğrudan uygulamanın bağımsız bir sürümünü kullanmanız veya uygulamayı başlatmak için kullanmanızdotnet exec
önerilir.
dotnet-trace'den yakalanan izlemeyi görüntüleme
Windows'da analiz için .nettrace dosyalarını Visual Studio'da veya PerfView'da görüntüleyebilirsiniz.
Linux'ta, çıkış biçimini dotnet-trace
speedscope
olarak değiştirerek izlemeyi görüntüleyebilirsiniz. seçeneğini kullanarak -f|--format
çıkış dosyası biçimini değiştirin. (varsayılan seçenek) ile speedscope
arasında nettrace
seçim yapabilirsiniz. seçeneği -f speedscope
bir speedscope
dosya üretmesini sağlardotnet-trace
. Speedscope
dosyaları adresinde https://www.speedscope.appaçılabilir.
Windows olmayan platformlarda toplanan izlemeler için, izleme dosyasını bir Windows makinesine taşıyabilir ve Visual Studio veya PerfView'da görüntüleyebilirsiniz.
Not
.NET Core çalışma zamanı biçiminde izlemeler nettrace
oluşturur. İzleme tamamlandıktan sonra izlemeler speedscope'a (belirtilirse) dönüştürülür. Bazı dönüştürmeler veri kaybına neden olabileceğinden, özgün nettrace
dosya dönüştürülen dosyanın yanında korunur.
Uzun komutlar yazmamak için .rsp dosyasını kullanın
Geçirebileceğiniz bağımsız değişkenleri içeren bir .rsp
dosyayla başlatabilirsinizdotnet-trace
. Bu, uzun bağımsız değişkenler bekleyen sağlayıcıları etkinleştirirken veya karakterleri şeritleyen bir kabuk ortamı kullanırken yararlı olabilir.
Örneğin, izlemek istediğiniz her seferinde aşağıdaki sağlayıcının yazılması zahmetli olabilir:
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
Buna ek olarak, önceki örnekte bağımsız değişkenin bir parçası olarak yer alır "
. Tırnak işaretleri her kabuk tarafından eşit olarak işlenmediğinden, farklı kabukları kullanırken çeşitli sorunlarla karşılaşabilirsiniz. Örneğin, girilir zsh
komut içindeki komutundan cmd
farklıdır.
Bunu her seferinde yazmak yerine, aşağıdaki metni adlı myprofile.rsp
bir dosyaya kaydedebilirsiniz.
--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
öğesini kaydettikten myprofile.rsp
sonra aşağıdaki komutu kullanarak bu yapılandırmayla başlatabilirsiniz dotnet-trace
:
dotnet-trace @myprofile.rsp