Поделиться через


Вызов SetupWriteTextLogError

SetupWriteTextLogError записывает сведения об ошибке SetupAPI или ошибке Win32 в текстовый журнал SetupAPI. SetupWriteTextLogError записывает две последовательные записи в текстовый журнал: первая запись содержит те же сведения в том же формате, что и в SetupWriteTextLog , а вторая запись регистрирует соответствующий код ошибки и понятное описание ошибки.

Чтобы вызвать SetupWriteTextLogError, приложение предоставляет те же сведения, что и для вызова SetupWriteTextLog , и, кроме того, предоставляет значение ошибки SetupAPI или ошибки Win32.

SetupWriteTextLogError записывает первую запись журнала в следующем формате:

категория **** entry_prefix time_stamp отступ в формате сообщения

SetupWriteTextLogError записывает вторую запись журнала в следующем формате:

категория ** entry_prefix time_stamp отступ **Ошибка:error-number error-description

Где:

  • Поля entry_prefix, метки времени, категории, отступа и форматированного сообщения совпадают с полями, описанными в разделе Формат текста раздела журнала текста.

  • Поле error-number содержит номер ошибки.

  • Поле error-description содержит понятное описание ошибки.

В следующем примере показано, как приложение обычно вызывает SetupWriteTextLogError для записи сведений об ошибке в текстовый журнал. В примере используется ошибка запуска системы. Приложение вызывает SetupWriteTextLogError, предоставляя следующие значения параметров:

  • LogToken имеет значение маркера журнала, которое было получено путем вызова SetupGetThreadLogToken или является одним из системных значений маркеров журнала, описанных в разделе Маркеры журнала.

  • Для параметра Категория задано значение TXTLOG_VENDOR, указывающее, что запись журнала сделана приложением, предоставляемым поставщиком. Категории событий описаны в разделе Включение категорий событий для текстового журнала.

  • LogFlags имеет значение TXTLOG_ERROR. Этот пример не включает метку времени и не изменяет глубину отступа. Текущая глубина отступа ранее была задана в пять текстовых пробелов в монопространстве. Сведения об изменении глубины отступов см. в разделе Запись записей журнала с отступом. Уровни событий описаны в разделе Настройка уровня событий для текстового журнала.

  • Для параметра Error задано значение кода ошибки Win32, ERROR_SERVICE_ALREADY_RUNNING. Десятичное значение этого кода ошибки равно 1056.

  • Для параметра MessageStr задано значение TEXT("Start Service: Failed to start service 'SomeService'").

  • Список параметров, разделенных запятыми, не предоставляется.

Параметры LogToken, Category и LogFlags влияют на работу SetupWriteTextLogError так же, как эти параметры влияют на работу SetupWriteTextLog.

Следующий код вызывает SetupWriteTextLogError для записи записи журнала для этого примера:

//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 ;
DWORD ErrorCode = 1056; // The corresponding Win32 error code

SetupWriteTextLog(LogToken, Category, Flags, ErrorCode, TEXT("Start Service: Failed to start service 'SomeService'"),);

Если категория событий TXTLOG_VENDOR включена и для текстового журнала задан уровень событий TXTLOG_ERROR, этот код создаст запись в текстовом журнале, которая будет иметь следующий формат:

!!!     :  Start Service: Failed to start service 'SomeService' 
!!!   :  Error 1056: An instance of the service is already running.

Имейте в виду, что SetupWriteTextLogError предоставляет строку "Экземпляр службы уже запущен". Для описания ошибки Win32 со значением 1056.