預設 ActivityIdFormat 為 W3C
活動 (Activity.DefaultIdFormat) 的預設識別碼格式現在改為 ActivityIdFormat.W3C。
變更描述
W3C 活動識別碼格式原本在 .NET Core 3.0 中推出,作為階層式識別碼格式的替代方案。 然而,為保留相容性,W3C 格式一直到 .NET 5 才成為預設值。 .NET 5 的預設值變更,因為 W3C 格式已經獲得認可,且在多個語言實作中獲得引動。
如果應用程式以 .NET 5 或更新版本以外的平台為目標,則會經歷舊版行為,也就是以 Hierarchical 為預設格式。 這項預設值適用於 net45+、netstandard1.1+ 和 netcoreapp (1.x、2.x 和 3.x) 平台。 在 .NET 5 和更新版本中,Activity.DefaultIdFormat 會設為 ActivityIdFormat.W3C。
導入的版本
5.0
建議的動作
如果您的應用程式與用於分散式追蹤的識別碼無關,則不需要採取任何動作。 ASP.NET Core 等程式庫與 HttpClient 可以取用或傳播這兩個版本的 ActivityIdFormat。
如果您需要與現有系統具備互通性,或現有系統依賴識別碼的格式,則可將 DefaultIdFormat 設定為 ActivityIdFormat.Hierarchical,藉此保留舊版行為。 或者,您也可用以下三種方法的其中之一來設定 AppContext 參數:
在專案檔中。
<ItemGroup> <RuntimeHostConfigurationOption Include="System.Diagnostics.DefaultActivityIdFormatIsHierarchial" Value="true" /> </ItemGroup>
在 runtimeconfig.json 檔案中。
{ "runtimeOptions": { "configProperties": { "System.Diagnostics.DefaultActivityIdFormatIsHierarchial": true } } }
透過環境變數。
將
DOTNET_SYSTEM_DIAGNOSTICS_DEFAULTACTIVITYIDFORMATISHIERARCHIAL
設定為true
或 1。