Документация по LinuxLinuxDoc.Ru 🔍

syslog, closelog, openlog - сообщения программе, ведущей системный журнал

НАЗВАНИЕ
closelog, openlog, syslog - сообщения программе, ведущей
системный журнал

СИНТАКСИС
#include

void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format, ...);
void closelog(void);

#include

void vsyslog(int priority, const char *format, va_list
ap);

ОПИСАНИЕ
closelog() закрывает описатель, используемый для записи
данных в журнал. Использование closelog() необязательно.

openlog() устанавливает связь с программой, ведущей
системный журнал. Строка ident добавляется к каждому
сообщению и обычно представляет собой название программы.
Аргумент option указывает флаг управляющий работой open-
log() и соответствующих вызовов syslog(). Аргумент facil-
ity устанаваливает значение по умолчанию если не
указываются соответствующие параметры при вызовах sys-
log(). Значения option и facility приводятся ниже.
Использование openlog() тоже необязательно, оно при
необходимости автоматически будет вызвано функцией sys-
log(), и в этом случае значение ident будет установлено
равным NULL.

syslog() создает сообщение для журнала, которое передается
syslogd(8). priority получаеся при логическом сложении
facility и level, описанных в следующей главе. Остаются
аргументы format (как и в printf(3)) и аргументы для for-
mat, кроме того, что сочетание %m будет заменено
сообщением об ошибке strerror(errno) и будет добавлен
завершающий символ новой строки.

ПАРАМЕТРЫ

Этот раздел описывает параметры, используемые для
установки значений option, facility и priority.

option
Аргумент option, относящийся к функции openlog() , имеет
значение ИЛИ для следующих выражений:

LOG_CONS
- написать сообщение об ошибке прямо на консоли,
если была ошибка при записи данных в системный
журнал;

LOG_NDELAY
- устанавливать соединение немедленно (обычно оно
устанавливается только при поступлении первого
сообщения);

LOG_NOWAIT
- не ожидает дочерние процессы которые могут быть
созданы во время отправки этого сообщения.
(Библиотека GNU C не создает в это время дочерних
процессов, поэтому эта опция не будет иметь эффекта
в Linux.)

LOG_ODELAY
- обратно от LOG_NDELAY; открытие соединения
откладывается до вызова syslog().

LOG_PERROR
- посылать сообщение еще и в поток stderr
(отсутствует в SUSv3);

LOG_PID
- добавлять к каждому сообщению идентификатор

facility .
Аргумент facility используется для указания типа
программы, записывающей сообщения. Это позволяет файлу
конфигурации указывать, что сообщения от различных
программ будут по-разному обрабатываться.

LOG_AUTH
- сообщения о безопасности/авторизации
(РЕКОМЕНДУЕТСЯ использовать вместо него LOG_AUTH-
PRIV).

LOG_AUTHPRIV
- сообщения о безопасности/авторизации (частные);

LOG_CRON
- демон часов (cron и at);

LOG_DAEMON
- другие системные демоны;

LOG_KERN
- сообщения ядра;

LOG_LOCAL0 до LOG_LOCAL7
зарезервированы для определения пользователем;

LOG_LPR
- подсистема принтера;

LOG_MAIL
- почтовая подсистема;

LOG_NEWS
- подсистема новостей USENET;

LOG_SYSLOG
- сообщения, генерируемые syslogd;

LOG_USER
(по умолчанию) - общие сообщения на уровне
пользователя ;

LOG_UUCP
- подсистема UUCP

level ,
определяющая степень важности сообщения. Далее значения
приводятся по понижению степени их важности:

LOG_EMERG
- система остановлена;

LOG_ALERT
- требуется немедленное вмешательство;

LOG_CRIT
- критические условия;

LOG_ERR
- ошибки;

LOG_WARNING
- предупреждения;

LOG_NOTICE
- важные рабочие условия;

LOG_INFO
- информационные сообщения;

LOG_DEBUG
- сообщения об отладке.

Функция setlogmask(3) может использоваться для ограничения
доступа на указанные уровни.

СООТВЕТСТВИЕ СТАНДАРТАМ
Функции openlog(), closelog(), и syslog() (но не vsys-
log()) описаны в SUSv2 и POSIX 1003.1-2001. POSIX
1003.1-2001 описывает только значения LOG_USER и
LOG_LOCAL* для facility. Кроме значений LOG_AUTHPRIV и
LOG_FTP, другие значения facility присутствуют в различных
системах Unix. Значение LOG_PERROR для option не описано
в POSIX 1003.1-2001, но присутствует в большинстве версий
Unix.

ПРЕДЫСТОРИЯ
Функция syslog появилась в BSD 4.2. BSD 4.3 описывает
openlog(), syslog(), closelog(), и setlogmask(). 4.3BSD-
Reno описывает vsyslog(). разумеется ранние версии
функций v* использовали механизм , не
совместимый с .

ЗАМЕЧАНИЯ

Аргумент ident функции openlog(), по-видимому, заносится
один в один. Поэтому, если строка, на которую он
указывает, меняется, то syslog() может начать
подготавливать измененную строку. В случае же, когда
строка уже не существует, результаты неопределены.
Наиболее переносимо будет использовать строковую
константу.

Никогда не передавайте строку с предоставленным
пользователем форматом, лучше используйте
syslog("%s", string);
Читать новости Linux в Telegram
Linux - syslog, closelog, openlog - сообщения программе, ведущей системный журнал
Мы в соцсетях ✉