示例 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 显示跟踪会话的修订属性。