Отправить сообщение в системный журнал
#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 системной библиотеки