предваряться идентификатором PID демона, при невозможности
записи в журнал сообщения будут выводиться на консоль,
источник сообщений определим как "системный демон"
(см. комментарии к функциям ведения журнала ниже). */
openlog("Скелет демона" , LOG_PID | LOG_CONS, LOG_DAEMON);
/* Отметимся */
syslog(LOG_INFO, "Демон начал плодотворную работу...");
closelog();
/* Далее следует текст программы, реализующий полезные функции
демона. Эта часть предоставляется читателю для собственной
разработки. */
...
}
В программе использовалось еще не обсуждавшаяся возможность системного журнала сообщений выполняющихся программ. Функцией генерации сообщений является
#include
void syslog(int priority, char *logstring, /* параметры*/...);
Каждому сообщению logstring
назначается приоритет, указанный параметром priority
. Возможные значения этого параметра включают:
LOG_EMERG | Идентифицирует состояние "паники" в системе. Обычно рассылается всем пользователям. |
LOG_ALERT | Идентифицирует ненормальное состояние, которое должно быть исправлено немедленно, например, нарушение целостности системной базы данных. |
LOG_CRIT | Идентифицирует критическое событие, например, ошибку дискового устройства. |
LOG_ERR | Идентифицирует различные ошибки. |
LOG_WARNING | Идентифицирует предупреждения. |
LOG_NOTICE | Идентифицирует события, которые не являются ошибками, но требуют внимания. |
LOG_INFO | Идентифицирует информационные сообщения, как, например, использованное в приведенной программе. |
LOG_DEBUG | Идентифицирует сообщение, обычно используемое только при отладке программы. |
Последний тип сообщений подсказывает еще одну возможность использования системного журнала — для отладки программ, особенно неинтерактивных.
Строка logstring
может включать элементы форматирования, такие же, как и в функции %m
, которое заменяется сообщением, соответствующим ошибке errno
. При этом может осуществляться вывод значений дополнительных параметров.
Функция
void openlog(char *ident, int logopt, int facility);
Строка ident
будет предшествовать каждому сообщению программы. Аргумент logopt
задает дополнительные опции, в том числе:
LOG_PID | Позволяет указывать идентификатор процесса в каждом сообщении. Эта опция полезна при журналировании нескольких демонов с одним и тем же значением ident, например, когда демоны порождаются вызовом |
LOG_CONS | Позволяет выводить сообщения на консоль при невозможности записи в журнал. |
Наконец, аргумент facility
позволяет определить источник сообщений:
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии