Provided by: manpages-ru-dev_4.18.1-1_all bug

ИМЯ

       closelog, openlog, syslog, vsyslog - отправка сообщений в службу журналирования

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <syslog.h>

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

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

   Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

       vsyslog():
           Начиная с glibc 2.19:
               _DEFAULT_SOURCE
           В версии glibc 2.19 и более ранних:
               _BSD_SOURCE

ОПИСАНИЕ

   openlog()
       Функция openlog() открывает для программы соединение со службой журналирования.

       Строка,  на  которую  указывает  ident,  будет предварять каждое сообщение, обычно это имя
       программы. Если значение ident равно NULL, то используется имя программы  (в  POSIX.1-2008
       не указано, что случается, если ident равно NULL).

       В  аргументе  option  указываются  флаги,  контролирующие действия openlog() и последующих
       вызовов syslog(). Аргумент facility устанавливает значения по  умолчанию,  если  не  будет
       указано другое в последующих вызовах syslog(). Значения для option и facility представлены
       ниже.

       Использование openlog() не обязательно; она будет вызвана syslog() в случае  необходимости
       (в этом случае по умолчанию ident будет установлено в NULL).

   syslog() и vsyslog()
       Функция syslog() генерирует сообщение журнала, которое будет передавать syslogd(8).

       Аргумент  priority  составляется  из объединения значений facility и level (описано ниже).
       Если значения facility нет в priority, то по  умолчанию  используется  значение,  заданное
       openlog(), или, если до этого openlog() не вызывался, используется значение LOG_USER.

       Оставшиеся  аргументы  —  format,  задаются  в формате как у printf(3) (а также аргументы,
       необходимые для format)  за  исключением  последовательности  двух  символов  %m,  которые
       заменяются  строкой  ошибки  strerror(errno).  В строку формата не нужно включать конечный
       символ новой строки.

       Функция vsyslog() выполняет то же самое, что и syslog()  с  той  лишь  разницей,  что  она
       принимает набор аргументов, получаемых с использованием списка макросов stdarg(3).

   closelog()
       Функция  closelog()  закрывает  файловый  дескриптор,  использованный  для записи в службу
       журналирования. Использование closelog() не обязательно.

   Значения option
       Аргумент option у  openlog()  представляет  собой  битовую  маску  объединённых  следующих
       значений:

       LOG_CONS       Писать   напрямую   в  системную  консоль,  если  при  отправке  в  систему
                      журналирования возникла ошибка.

       LOG_NDELAY     Немедленно открыть соединение (обычно  соединение  открывается  при  первом
                      сообщении).  Например,  это  может быть полезно, если последующий chroot(2)
                      делает недоступным путь, используемый внутри свойства протоколирования.

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

       LOG_ODELAY     Противоположен LOG_NDELAY;  открытие  подключения  откладывается,  пока  не
                      будет  вызван  syslog()  (этот  параметр  используется  по  умолчанию,  нет
                      необходимости выставлять его вручную).

       LOG_PERROR     (нет в POSIX.1-2001 или POSIX.1-2008)  Также  протоколировать  сообщение  в
                      stderr.

       LOG_PID        Включать PID вызывающего в каждое сообщение.

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

       LOG_AUTH       сообщения безопасности/авторизации

       LOG_AUTHPRIV   сообщения безопасности/авторизации (private)

       LOG_CRON       планировщик заданий (cron и at)

       LOG_DAEMON     системные службы без определенного значения объекта

       LOG_FTP        служба FTP

       LOG_KERN       сообщения ядра (не могут быть созданы пользовательскими процессами)

       с LOG_LOCAL0 по LOG_LOCAL7
                      зарезервировано для локального использования

       LOG_LPR        подсистема печати

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

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

       LOG_SYSLOG     сообщения, сгенерированные самой службой syslogd(8)

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

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

   Значения level
       Определяет важность сообщения. Ниже указаны уровни по уменьшению важности:

       LOG_EMERG      система в нерабочем состоянии

       LOG_ALERT      необходимо срочное вмешательство

       LOG_CRIT       критические состояния

       LOG_ERR        ошибки

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

       LOG_NOTICE     обычные, но важные сообщения

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

       LOG_DEBUG      сообщения уровня отладки

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

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).

       ┌─────────────────────────────────────────────┬──────────────────────┬────────────────────┐
       │ИнтерфейсАтрибутЗначение           │
       ├─────────────────────────────────────────────┼──────────────────────┼────────────────────┤
       │openlog(), closelog()                        │ Безвредность в нитях │ MT-Safe            │
       ├─────────────────────────────────────────────┼──────────────────────┼────────────────────┤
       │syslog(), vsyslog()                          │ Безвредность в нитях │ MT-Safe env locale │
       └─────────────────────────────────────────────┴──────────────────────┴────────────────────┘

СТАНДАРТЫ

       Функции  openlog(),  closelog()  и  syslog()  (но  не  vsyslog())  определены   в   SUSv2,
       POSIX.1-2001 и POSIX.1-2008.

       В  POSIX.1-2001  для  facility  описаны  только значения LOG_USER и LOG_LOCAL*. Однако, за
       исключением LOG_AUTHPRIV и LOG_FTP, остальные значения facility присутствуют в большинстве
       систем UNIX.

       Значение LOG_PERROR для option не описано в POSIX.1-2001 или POSIX.1-2008, однако доступно
       в большинстве версий UNIX.

ЗАМЕЧАНИЯ

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

       Никогда   не  подставляйте  пользовательские  данные  в  качестве  формата  представления,
       используйте вместо этого:

           syslog(priority, "%s", string);

СМ. ТАКЖЕ

       journalctl(1), logger(1), setlogmask(3), syslog.conf(5), syslogd(8)

ПЕРЕВОД

       Русский   перевод   этой   страницы   руководства    был    сделан    Alexander    Golubev
       <fatzer2@gmail.com>,   Azamat   Hackimov  <azamat.hackimov@gmail.com>,  Hotellook,  Nikita
       <zxcvbnm3230@mail.ru>,       Spiros       Georgaras       <sng@hellug.gr>,       Vladislav
       <ivladislavefimov@gmail.com>,    Yuri    Kozlov   <yuray@komyakino.ru>   и   Иван   Павлов
       <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.