syslog.md
1> **Источник:** https://python-all.ru/3.12/library/syslog.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `syslog` – библиотечные функции syslog Unix89---1011Этот модуль предоставляет интерфейс к библиотечным функциям Unix `syslog`. Подробное описание средства `syslog` приведено на страницах руководства Unix.1213[Доступность](https://python-all.ru/3.12/library/intro.html#availability): Unix, не Emscripten, не WASI.1415Этот модуль является обёрткой для семейства системных функций `syslog`. Чистая библиотека Python, умеющая общаться с сервером syslog, доступна в модуле [`logging.handlers`](https://python-all.ru/3.12/library/logging.handlers.html#module-logging.handlers) как `SysLogHandler`.1617Модуль определяет следующие функции:1819#### `syslog.syslog(message)`2021#### `syslog.syslog(priority, message)`2223Отправляет строку *message* системному логгеру. При необходимости добавляется завершающий перевод строки. Каждое сообщение помечается приоритетом, состоящим из *средства* и *уровня*. Необязательный аргумент *priority*, по умолчанию равный `LOG_INFO`, определяет приоритет сообщения. Если средство не закодировано в *priority* с помощью логического ИЛИ (`LOG_INFO | LOG_USER`), используется значение, указанное при вызове [`openlog()`](https://python-all.ru/3.12/library/syslog.html#syslog.openlog).2425Если [`openlog()`](https://python-all.ru/3.12/library/syslog.html#syslog.openlog) не был вызван до вызова [`syslog()`](https://python-all.ru/3.12/library/syslog.html#module-syslog), то [`openlog()`](https://python-all.ru/3.12/library/syslog.html#syslog.openlog) будет вызван без аргументов.2627Возбуждает [событие аудита](https://python-all.ru/3.12/library/sys.html#auditing) `syslog.syslog` с аргументами `priority`, `message`.2829Изменено в версии 3.2: В предыдущих версиях [`openlog()`](https://python-all.ru/3.12/library/syslog.html#syslog.openlog) не вызывался автоматически, если он не был вызван до вызова [`syslog()`](https://python-all.ru/3.12/library/syslog.html#module-syslog), и вызов `openlog()` перекладывался на реализацию syslog.3031Изменено в версии 3.12: Эта функция ограничена в подынтерпретаторах. (Это затрагивает только код, который выполняется в нескольких интерпретаторах, и это ограничение не актуально для большинства пользователей.) [`openlog()`](https://python-all.ru/3.12/library/syslog.html#syslog.openlog) должен быть вызван в главном интерпретаторе, прежде чем [`syslog()`](https://python-all.ru/3.12/library/syslog.html#module-syslog) сможет использоваться в подынтерпретаторе. В противном случае будет возбуждено исключение [`RuntimeError`](https://python-all.ru/3.12/library/exceptions.html#RuntimeError).3233#### `syslog.openlog([ident[, logoption[, facility]]])`3435Параметры журналирования последующих вызовов [`syslog()`](https://python-all.ru/3.12/library/syslog.html#module-syslog) можно задать, вызвав [`openlog()`](https://python-all.ru/3.12/library/syslog.html#syslog.openlog). [`syslog()`](https://python-all.ru/3.12/library/syslog.html#module-syslog) вызовет [`openlog()`](https://python-all.ru/3.12/library/syslog.html#syslog.openlog) без аргументов, если журнал в данный момент не открыт.3637Необязательный именованный аргумент *ident* – это строка, которая добавляется к каждому сообщению; по умолчанию используется `sys.argv[0]` без начальных компонентов пути. Необязательный именованный аргумент *logoption* (по умолчанию 0) – битовое поле – возможные значения для комбинирования приведены ниже. Необязательный именованный аргумент *facility* (по умолчанию `LOG_USER`) задаёт средство по умолчанию для сообщений, в которых средство явно не закодировано.3839Вызывает [событие аудита](https://python-all.ru/3.12/library/sys.html#auditing) `syslog.openlog` с аргументами `ident`, `logoption`, `facility`.4041Изменено в версии 3.2: В предыдущих версиях именованные аргументы не допускались, а *ident* был обязательным.4243Изменено в версии 3.12: Эта функция ограничена в подынтерпретаторах. (Это затрагивает только код, который выполняется в нескольких интерпретаторах, и это ограничение не актуально для большинства пользователей.) Вызов разрешён только в главном интерпретаторе. При вызове в подынтерпретаторе будет возбуждено исключение [`RuntimeError`](https://python-all.ru/3.12/library/exceptions.html#RuntimeError).4445#### `syslog.closelog()`4647Сбрасывает значения модуля syslog и вызывает системную библиотечную функцию `closelog()`.4849Это заставляет модуль вести себя так же, как при первоначальном импорте. Например, [`openlog()`](https://python-all.ru/3.12/library/syslog.html#syslog.openlog) будет вызван при первом вызове [`syslog()`](https://python-all.ru/3.12/library/syslog.html#module-syslog) (если [`openlog()`](https://python-all.ru/3.12/library/syslog.html#syslog.openlog) ещё не был вызван), а *ident* и остальные параметры [`openlog()`](https://python-all.ru/3.12/library/syslog.html#syslog.openlog) сбрасываются до значений по умолчанию.5051Возбуждает [событие аудита](https://python-all.ru/3.12/library/sys.html#auditing) `syslog.closelog` без аргументов.5253Изменено в версии 3.12: Эта функция ограничена в подынтерпретаторах. (Это затрагивает только код, который выполняется в нескольких интерпретаторах, и это ограничение не актуально для большинства пользователей.) Вызов разрешён только в главном интерпретаторе. При вызове в подынтерпретаторе будет возбуждено исключение [`RuntimeError`](https://python-all.ru/3.12/library/exceptions.html#RuntimeError).5455#### `syslog.setlogmask(maskpri)`5657Устанавливает маску приоритетов равной *maskpri* и возвращает предыдущее значение маски. Вызовы [`syslog()`](https://python-all.ru/3.12/library/syslog.html#module-syslog) с уровнем приоритета, не установленным в *maskpri*, игнорируются. По умолчанию регистрируются все приоритеты. Функция `LOG_MASK(pri)` вычисляет маску для отдельного приоритета *pri*. Функция `LOG_UPTO(pri)` вычисляет маску для всех приоритетов до *pri* включительно.5859Вызывает [событие аудита](https://python-all.ru/3.12/library/sys.html#auditing) `syslog.setlogmask` с аргументом `maskpri`.6061Модуль определяет следующие константы:6263**Уровни приоритета (от высокого к низкому):**6465`LOG_EMERG`, `LOG_ALERT`, `LOG_CRIT`, `LOG_ERR`, `LOG_WARNING`, `LOG_NOTICE`, `LOG_INFO`, `LOG_DEBUG`.6667**Службы:**6869`LOG_KERN`, `LOG_USER`, `LOG_MAIL`, `LOG_DAEMON`, `LOG_AUTH`, `LOG_LPR`, `LOG_NEWS`, `LOG_UUCP`, `LOG_CRON`, `LOG_SYSLOG`, `LOG_LOCAL0` до `LOG_LOCAL7`, и, если определено в `<syslog.h>`, `LOG_AUTHPRIV`.7071**Опции журналирования:**7273`LOG_PID`, `LOG_CONS`, `LOG_NDELAY` и, если определены в `<syslog.h>`, `LOG_ODELAY`, `LOG_NOWAIT` и `LOG_PERROR`.7475## Примеры7677### Простой пример7879Простой набор примеров:8081```python82import syslog8384syslog.syslog('Processing started')85if error:86 syslog.syslog(syslog.LOG_ERR, 'Processing started')87```8889Пример настройки некоторых параметров ведения журнала: они включают идентификатор процесса в записываемые сообщения и записывают эти сообщения в средство назначения, используемое для журналирования почты.9091```python92syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL)93syslog.syslog('E-mail processing initiated...')94```95