Поместить сообщение в журнал активности HAM
#include <ha/ham.h>
ham_action_t * ham_action_log( ham_condition_t *chdl,
const char *aname,
const char *msg,
unsigned attachprefix,
int verbosity,
unsigned flags );
- сhdl
- Дескриптор условия в HAM. Дескриптор (сhdl) может быть получен из:
- одной из функций ham_condition*() для добавления условий либо:
- путём вызова любой из ham_condition_handle() функций для запроса дескриптора для конкретного условия.
- aname
- Действие HAM.
- msg
- Сообщение, которое будет помещено в поток журнала активности.
- attachprefix
- Префикс для добавления к сообщению. Префикс не будет добавлен, если attachprefix равен нулю.
- verbosity
- Уровень подробности вывода действия, которое будет сравниваться с уровнем подробности вывода HAM. Помещаемое сообщение будет сгенерировано в том случае, если уровень подробности вывода HAM больше или равен значению, указанному в verbosity.
- flags
- Флаги:
- HREARMAFTERRESTART
- Указывает, что действие должно быть автоматически перезапущено после перезапуска объекта, которому оно принадлежит. По умолчанию данный флаг отключен — действия автоматически завершаются при перезапуске объекта. Обратите внимание, что если условие, которому принадлежит данное действие, удаляется после перезапуска, это действие также будет удалено, независимо от значения данного флага.
libham
Функция ham_action_log() используется для помещения сообщений в поток журнала действий, который поддерживает HAM.
Помещаемое сообщение указывается в msg и будет генерироваться, если verbosity HAM больше или равно значению, указанному в verbosity. Кроме того, если attachprefix не равен нулю, к сообщению журнала будет добавлен префикс, содержащий текущий объект/условие/действие, к которому относится данное сообщение.
- Адрес
- Дескриптор действия для условия.
- NULL
- Возникла ошибка. Код ошибки записан в errno.
- EBADF
- Не удалось подключиться к HAM.
- EINVAL
- Имя aname некорректно (например, содержит символ
/
) или имеет значение NULL
. Не удалось подключиться к HAM. Это происходит, когда процесс, открывший соединение (используя ham_connect()), и процесс, вызывающий ham_action_execute(), не совпадают. - ENAMETOOLONG
- Указанное имя (в aname) слишком длинное, т.е. оно превышает
_POSIX_PATH_MAX
(определено в <limits.h>
). Обратите внимание, что общая длина имени объекта/условия/действия также ограничена _POSIX_PATH_MAX
. - ENOENT
- Отсутствует объект или условие с заданным дескриптором (chdl).
- ENOMEM
- Недостаточно памяти для создания нового дескриптора.
В дополнение к вышеуказанным ошибкам HAM возвращает любую ошибку, с которой он сталкивается при обслуживании данного запроса.
ЗОСРВ «Нейтрино»
- Нет
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Нет
- В потоке
- Да
Предыдущий раздел: Менеджер высокой готовности (HAM)