範例 4:更新追蹤會話
當追蹤工作階段正在執行時,您可以更新即時或記錄的追蹤工作階段的下列屬性:
將即時追蹤會話轉換為追蹤記錄會話(使用 -f)。
為現有的追蹤記錄會話建立新的追蹤記錄檔(使用 -f)。
將即時追蹤訊息傳遞新增至現有的追蹤記錄會話(使用 -rt)。
變更緩衝區數目上限(使用 -max),但不會變更緩衝區數目下限。
變更排清時間間隔(使用 -ft)。
清除追蹤緩衝區(使用 -tracelog -flush)。
您無法使用 tracelog -update 命令來變更追蹤提供者的旗標和層級。 請改用 tracelog -enable 命令,如範例 5:啟用追蹤提供者所示。
-rt 和 -f 參數在 tracelog -update 命令中的運作方式不同。 -rt 參數會將即時訊息傳遞新增至追蹤記錄會話。 因此,新的追蹤訊息會直接傳送至追蹤取用者和追蹤記錄。 不過,您必須先使用 tracelog -flush 命令來排清緩衝區,才能將即時訊息傳遞新增至追蹤記錄會話。 當 -f 參數用來更新即時追蹤會話時,它會將即時訊息傳遞取代為傳遞至追蹤記錄檔。 因此,新的追蹤訊息只會傳送至追蹤記錄檔;它們不再直接傳送給追蹤取用者。
下列命令會將名為 「MyTrace」 的即時追蹤會話變更為追蹤記錄會話。 此命令會 使用 -f 參數來指定記錄檔 C:\tracing\MyTrace.etl 的位置。 它也會使用值為 35 的 -max 參數,將緩衝區數目上限增加到 35。
tracelog -update MyTrace -f c:\tracing\mytrace.etl -max 35
為了回應,Tracelog 會顯示追蹤會話的屬性,包括剛剛變更的屬性。
由於此命令,提供者所產生的所有新追蹤訊息,以及提交命令時儲存在緩衝區中的任何追蹤訊息,只會寫入記錄檔。 它們不再直接傳送給追蹤取用者,如同即時追蹤會話。
若要將追蹤記錄新增至即時追蹤會話,以便將追蹤訊息傳送至追蹤取用者和追蹤記錄檔,請同時 包含 -rt 和 -f 參數,如下列命令所示。
tracelog -update MyTrace -rt -f c:\tracing\mytrace.etl -max 35
您也可以在執行工作階段時排清追蹤緩衝區。 這是與排清定時器協調的強制排清。 當排清定時器到期和追蹤會話停止時,系統會再次排清緩衝區。
若要排清現有追蹤會話的緩衝區,請使用 -flush 參數,如下列範例所示。 -flush 參數不是 tracelog -update 命令的子參數。
tracelog -flush MyTrace
作為回應,Tracelog 會顯示追蹤會話的修訂屬性。