範例 7:自訂追蹤訊息前置詞
每個追蹤訊息的開頭都是追蹤 訊息前置詞 ,由追蹤訊息的相關資料所組成。 追蹤訊息前置詞的格式會儲存在 %TRACE_FORMAT_PREFIX% 環境變數中。 藉由變更環境變數的值,您可以自訂追蹤訊息前置詞,以最實用格式顯示追蹤訊息所需的資料。 預設追蹤訊息前置詞中的變數,以及您可以在追蹤訊息前置詞中使用的所有變數,都會在追蹤訊息前置詞主題中說明。
下列顯示顯示預設追蹤訊息前置詞。 追蹤訊息是由 Tracedrv 所產生,這是 Windows 驅動程式套件中已啟用追蹤的範例驅動程式, (WDK) 。
[0]0AF4.0C64::07/25/2003-14:55:39.998 [tracedrv]IOCTL = 1
[0]0AF4.0C64::07/25/2003-14:55:39.998 [tracedrv]Hello, 1 Hi
[0]0AF4.0C64::07/25/2003-14:55:39.998 [tracedrv]Hello, 2 Hi
...
預設前置詞的格式如下。
[%9!d!]%8!04X!.%3!04X!::%4!s! [%1!s!]
,表示下列資料:
[CPUNumber]ProcessID.ThreadID::SystemTime [MessageGUIDFriendlyName]
其中 MessageGUIDFriendlyName 預設為建立追蹤提供者的目錄名稱。
若要建立新的追蹤訊息前置詞,請使用 set 命令來重 設 %TRACE_FORMAT_PREFIX% 環境變數的值。 例如,
set TRACE_FORMAT_PREFIX=%2!s!: %!FUNC!: %8!04x!.%3!04x!: %4!s!:
此命令會設定下列格式的追蹤訊息前置詞:
SourceFile_LineNumber: FunctionName: ProcessID.ThreadID: SystemTime
因此,Tracefmt 輸出會使用新的追蹤訊息前置詞,如下列顯示所示:
tracedrv_c258: TracedrvDispatchDeviceControl: 0af4.0c64: 07/25/2003-13:55:39.998: IOCTL = 1
tracedrv_c264: TracedrvDispatchDeviceControl: 0af4.0c64: 07/25/2003-13:55:39.998: Hello, 1 Hi
tracedrv_c264: TracedrvDispatchDeviceControl: 0af4.0c64: 07/25/2003-13:55:39.998: Hello, 2 Hi
tracedrv_c264: TracedrvDispatchDeviceControl: 0af4.0c64: 07/25/2003-13:55:39.998: Hello, 3 Hi
...
注意 如果您要在命令或批次檔中設定追蹤前置詞,其中百分比符號代表命令列參數的變數,請使用前置詞變數的兩個連續百分比符號。 例如,若要在前置詞中包含系統時間,請輸入 %%4。