Unix Man (Справочное руководство)


LOG(7)


LOG(7)

НАЗВАНИЕ


log - интерфейс для регистрации ошибок и трассировки событий псевдоустройств

ОПИСАНИЕ


Драйвер log обеспечивает интерфейс для процессов регистрации ошибок и трассировки событий псевдоустройств [см. , ]. Log предоставляет два отдельных интерфейса: интерфейс вызова функций из ядра, через который драйверы и модули псевдоустройств передают сообщения для регистрации, а также набор команд для системного вызова для взаимодействия на прикладном уровне с процессами регистрации и трассировки, а также для процессов, которым требуется регистрировать свои собственные сообщения.

Вызов функций из ядра

Сообщения передаются для регистрации путем вызова из ядра функции strlog:

#include <sys/stropts.h> #include <sys/strlog.h> #include <sys/log.h>

strlog (mid, sid, level, flags, fmt, arg1, ...) short mid, sid; char level; unsigned short flags; char *fmt; unsigned int arg1;

Аргумент mid - это идентификатор модуля для модуля или драйвера, посылающего сообщение для регистрации. Аргумент sid задает дополнительный внутренний числовой идентификатор, обычно используемый для идентификации младшего устройства в драйвере. Аргумент level - это уровень приоритета трассировки, дающий возможность избирательной трассировки (пропуска сообщений с низким приоритетом). Аргумент flags представляет собой комбинацию следующих значений:

SL_ERROR Сообщение зарегистрировать, как ошибку. SL_TRACE Трассировочное сообщение. SL_FATAL Фатальная ошибка. SL_NOTIFY Послать сообщение системному администратору через .

Аргумент fmt - это цепочка символов, задающая формат в стиле , но спецификаторы %s, %e, %E, %g и %G не обрабатываются. Количество дополнительных числовых аргументов (arg1, ...) ограничено величиной NLOGARGS (в настоящий момент оно равно 3).

Интерфейс пользователя

Доступ к интерфейсу log обеспечивается путем открытия устройства /dev/log через драйвер . Каждое открытие устройства /dev/log образует отдельный поток к драйверу log. Чтобы получать сообщения от драйвера log, процесс должен оповестить драйвер с помощью команды I_STR системного вызова о своем желании обрабатывать сообщения об ошибках или трассировочные сообщения, указав в качестве третьего аргумента для системного вызова ioctl адрес структуры типа struct strioctl.




Начало  Назад  Вперед