Отправить сообщение в системный журнал
#include <stdio.h>#include <sys/slog.h>int slogf( int opcode,int severity,const char *fmt,... );
_SLOG_SETCODE
( major, minor ), который определен в <sys/slog.h>
. Допустимые major и minor коды определены в <sys/slogcodes.h>
.Дополнительные аргументы должны точно соответствовать fmt по типу и количеству.
libc
Функции семейства slog*() посылают посылают сообщение в системный журнал менеджера slogger. Для отправки форматированного сообщения используется slogf(). Если имеются программы, которые сканируют численные значения в журнале, целесообразно использовать slogb() или slogi().
Функция vslogf() является альтернативной формой slogf(), но принимает аргументы в виде <stdarg.h>
.
![]() | В некоторых случаях функция может использовать файловый дескриптор. Будьте осторожны с использованием procmgr_daemon() без флага PROCMGR_DAEMON_NOCLOSE . |
Степени важности сообщения
Доступно восемь уровней важности сообщения: 7
(по умолчанию) – наиболее важные и 0
– наименее.
Константа | Степень важности | Описание |
---|---|---|
_SLOG_SHUTDOWN | 0 | Завершение системы |
_SLOG_CRITICAL | 1 | Непредвиденная и неустранимая ошибка (например, ошибка жесткого диска) |
_SLOG_ERROR | 2 | Непредвиденная устранимая ошибка (например, необходимость перезапустить контроллер оборудования) |
_SLOG_WARNING | 3 | Ожидаемая ошибка (например, ошибка четности) |
_SLOG_NOTICE | 4 | Предупреждения (например, закончилась бумага в принтере) |
_SLOG_INFO | 5 | Информационное сообщение |
_SLOG_DEBUG1 | 6 | Сообщение отладки (например, общие детали исполнения) |
_SLOG_DEBUG2 | 7 | Сообщение отладки (например, расширенные детали исполнения) |
Размер отправленного slogger сообщения или -1
в случае ошибки.
Любой код ошибки функции MsgSend() или:
255×4
байт или считано нечетное число байт. #include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <sys/slog.h>#include <sys/slogcodes.h>int main(){int i;for (i = 0 ; ; i++ ){switch ( rand() % 3 ){case 0:slogb( _SLOG_SETCODE( _SLOGC_TEST, 0 ), _SLOG_DEBUG1, &i, sizeof( i ) );break;case 1:slogi( _SLOG_SETCODE( _SLOGC_TEST, 1 ), _SLOG_CRITICAL, 1, i );break;case 2:slogf( _SLOG_SETCODE( _SLOGC_TEST, 2 ), _SLOG_ERROR, "This is number %d", i );break;}sleep( 1 );}return (EXIT_SUCCESS);}
ЗОСРВ «Нейтрино»
slogger, sloginfo в Справочнике по Утилитам
Предыдущий раздел: Описание API системной библиотеки