Как работает Linux Syslogger? - PullRequest
       0

Как работает Linux Syslogger?

5 голосов
/ 24 ноября 2010

Я изучаю программирование на Linux и хочу сделать следующее. Я хотел бы создать мини-логгер, который будет работать как системный журнал. Я хочу иметь возможность заменить системный журнал (не на практике, а просто чтобы понять, как все работает на каждом уровне).

Так что в моем коде я бы написал

#include "miniLogger.h"

....
....
miniLogger(DEBUG, "sample debug message");

----
----

Теперь, полагаю, мне понадобится какой-нибудь демон для прослушивания входящих сообщений от моего miniLogger, и я не имею опыта работы с демонами. Можете ли вы указать мне правильное направление или дать краткий обзор того, как сообщения могут перемещаться из моего API в настраиваемое место назначения. Я прочитал справочные страницы, но мне нужно больше узнать о том, как API взаимодействуют с демонами в целом.

Ответы [ 2 ]

10 голосов
/ 24 ноября 2010

syslogd прослушивает сообщения журнала через / dev / log, который является сокетом домена unix. Сокет ориентирован на дейтаграммы, что означает, что протокол похож на udp.

Ваш демон журнала должен открыть сокет, установить сокет в режим сервера, открыть файл журнала в режиме записи, запросить уведомление о пакетах, безопасный анализ сообщений и запись их в файл. Важные системные вызовы для выполнения сокета io описаны в man 7 socket . Чтобы получать уведомления о входящих данных в сокет, вы можете использовать epoll или выбрать.

1 голос
/ 24 ноября 2010

syslog обычно использует сокет PF_LOCAL в /dev/log.

...