写入错误或警告日志条目

以下示例演示应用程序通常如何调用 SetupWriteTextLog 以在 SetupAPI 文本日志中写入错误或警告条目。 但是,如果事件与特定于 SetupAPI 的错误或 Win32 错误相关联,则应用程序可以改为调用 SetupWriteTextLogErrorSetupWriteTextLogError 有助于记录和解释有关这些类型的错误的信息。

有关调用 SetupWriteTextLog 以记录错误消息的信息,请参阅 记录错误消息 ;有关调用 SetupWriteTextLog 以记录警告消息的信息,请参阅 记录警告消息

记录错误消息

在此示例中,应用程序调用 SetupWriteTextLog,并提供以下参数值:

  • LogToken 设置为通过调用 SetupGetThreadLogToken 获取的日志令牌值,或者是 日志令牌中描述的系统定义的日志令牌值之一。

  • 类别 设置为 TXTLOG_VENDOR,这表示日志条目是由供应商提供的应用程序创建的。 为 文本日志启用事件类别中介绍了事件类别

  • 标志 设置为TXTLOG_ERROR和TXTLOG_TIMESTAMP的按位 OR。 在此示例中,缩进深度未更改,并且当前缩进深度以前设置为五个单空格文本空间。 有关如何更改缩进深度的信息,请参阅 写入缩进日志条目。 设置 文本日志的事件级别 主题中介绍了事件级别。

  • MessageStr 设置为 TEXT (“Application Error (%d) ”) 。

  • 逗号分隔的列表提供变量 ErrorCode。

以下代码调用 SetupWriteTextLog 来编写此示例的日志条目:

//The LogToken value was previously returned by call to
//SetupGetThreadLogToken or one of the system-defined log token values
DWORD Category = TXTLOG_VENDOR; 
DWORD Flags = TXTLOG_ERROR | TXTLOG_TIMESTAMP;
DWORD ErrorCode = 1111; // An error code value

SetupWriteTextLog(LogToken, Category, Flags, TEXT("Application Error (%d)"),ErrorCode);

如果启用了 TXTLOG_VENDOR 事件类别并为文本日志设置了TXTLOG_ERROR事件级别,则此代码将在文本日志中创建一个条目,其格式如下所示:

!!!  2005/02/13 22:06:28.109:    :  Application error (1111) 

entry_prefix字段“!!! “ 指示日志条目是错误消息。

记录警告消息

记录警告消息与记录错误消息几乎相同。 区别在于事件级别的设置。 将 标志 设置为TXTLOG_WARNING而不是TXTLOG_ERROR。 如果按照记录错误消息中所述调用 SetupWriteTextLog,除了将 Flags 设置为TXTLOG_WARNING和TXTLOG_TIMESTAMP的按位 OR 外,SetupWriteTextLog 将写入以下日志条目:

!  2005/02/13 22:06:28.109:    :  Application error (1111) 

日志条目 entry_prefix 字段为“! “,指示这是一条警告消息,而不是”!!! “,指示错误消息。