Syslog позволяет программам посылать сообщения , интересующие системного администратора,
они могут быть выведены на консоль , посланы по e-mail или записаны в лог-файл .
Сислог обычно есть демон под названием syslogd , который просматривает сообщения в каталоге
/dev/log . Конфигурация демона обычно настраивается в /etc/syslog.conf .
Сислог может перехватывать сообщения от ядра , но в /dev/log они не пишутся , это делает
обычно другой демон - klogd .
Каждое посылаемое сообщение имеет 2 параметра -
1. facility - идентификатор процесса , его еще называют level
2.priority - приоритет , может быть:debug,informational,warning,critical.
Функции для работы с сислогом :
1. openlog (const char *ident, int option, int facility)
пример использования
#include < syslog.h >
void shared_library_function (void)
{
openlog ("mylibrary", option, priority);
syslog (LOG_INFO, "shared library has been invoked");
closelog ();
}
2. void syslog (int facility_priority, char *format, ...)
функция записывает в сислог , первый аргумент функции может
принимать следующие значения :
LOG_USER , LOG_MAIL , LOG_DAEMON , LOG_AUTH , LOG_SYSLOG , LOG_LPR
LOG_NEWS , LOG_UUCP , LOG_CRON , LOG_AUTHPRIV , LOG_FTP , LOG_LOCAL0
приоритет может иметь значения :
LOG_EMERG , LOG_ALERT , LOG_CRIT , LOG_ERR , LOG_WARNING , LOG_NOTICE
LOG_INFO , LOG_DEBUG .
Пример :
#include < syslog.h >
syslog (LOG_MAKEPRI(LOG_LOCAL1, LOG_ERROR),
"Unable to make network connection to %s. Error=%m", host);
Пример :
#include < syslog.h >
setlogmask (LOG_UPTO (LOG_NOTICE));
openlog ("exampleprog", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
syslog (LOG_NOTICE, "Program started by User %d", getuid ());
syslog (LOG_INFO, "A tree falls in a forest");
closelog ();
|
|