> **Источник:** https://python-all.ru/3.14/library/syslog.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# `syslog` – библиотечные функции syslog Unix

---

Этот модуль предоставляет интерфейс к библиотечным функциям Unix `syslog`. Подробное описание средства `syslog` приведено на страницах руководства Unix.

[Доступность](https://python-all.ru/3.14/library/intro.html#availability): Unix, не WASI, не iOS.

Этот модуль является обёрткой для семейства системных функций `syslog`. Чистая библиотека Python, умеющая общаться с сервером syslog, доступна в модуле [`logging.handlers`](https://python-all.ru/3.14/library/logging.handlers.html#module-logging.handlers) как [`SysLogHandler`](https://python-all.ru/3.14/library/logging.handlers.html#logging.handlers.SysLogHandler).

Модуль определяет следующие функции:

#### `syslog.syslog(message)`

#### `syslog.syslog(priority, message)`

Отправляет строку *message* системному логгеру. При необходимости добавляется завершающий перевод строки. Каждое сообщение помечается приоритетом, состоящим из *средства* и *уровня*. Необязательный аргумент *priority*, по умолчанию равный [`LOG_INFO`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_INFO), определяет приоритет сообщения. Если средство не закодировано в *priority* с помощью логического ИЛИ (`LOG_INFO | LOG_USER`), используется значение, указанное при вызове [`openlog()`](https://python-all.ru/3.14/library/syslog.html#syslog.openlog).

Если [`openlog()`](https://python-all.ru/3.14/library/syslog.html#syslog.openlog) не был вызван до вызова `syslog()`, то `openlog()` будет вызван без аргументов.

Возбуждает [событие аудита](https://python-all.ru/3.14/library/sys.html#auditing) `syslog.syslog` с аргументами `priority`, `message`.

Изменено в версии 3.2: В предыдущих версиях [`openlog()`](https://python-all.ru/3.14/library/syslog.html#syslog.openlog) не вызывался автоматически, если он не был вызван до вызова `syslog()`, и вызов `openlog()` перекладывался на реализацию syslog.

Изменено в версии 3.12: Эта функция ограничена в подынтерпретаторах. (Это затрагивает только код, который выполняется в нескольких интерпретаторах, и это ограничение не актуально для большинства пользователей.) [`openlog()`](https://python-all.ru/3.14/library/syslog.html#syslog.openlog) должен быть вызван в главном интерпретаторе, прежде чем `syslog()` сможет использоваться в подынтерпретаторе. В противном случае будет возбуждено исключение [`RuntimeError`](https://python-all.ru/3.14/library/exceptions.html#RuntimeError).

#### `syslog.openlog([ident[, logoption[, facility]]])`

Параметры журналирования последующих вызовов [`syslog()`](https://python-all.ru/3.14/library/syslog.html#module-syslog) можно задать, вызвав `openlog()`. `syslog()` вызовет `openlog()` без аргументов, если журнал в данный момент не открыт.

Необязательный именованный аргумент *ident* – это строка, которая добавляется к каждому сообщению; по умолчанию используется `sys.argv[0]` без начальных компонентов пути. Необязательный именованный аргумент *logoption* (по умолчанию 0) – битовое поле – возможные значения для комбинирования приведены ниже. Необязательный именованный аргумент *facility* (по умолчанию [`LOG_USER`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_USER)) задаёт средство по умолчанию для сообщений, в которых средство явно не закодировано.

Вызывает [событие аудита](https://python-all.ru/3.14/library/sys.html#auditing) `syslog.openlog` с аргументами `ident`, `logoption`, `facility`.

Изменено в версии 3.2: В предыдущих версиях именованные аргументы не допускались, а *ident* был обязательным.

Изменено в версии 3.12: Эта функция ограничена в подынтерпретаторах. (Это затрагивает только код, который выполняется в нескольких интерпретаторах, и это ограничение не актуально для большинства пользователей.) Вызов разрешён только в главном интерпретаторе. При вызове в подынтерпретаторе будет возбуждено исключение [`RuntimeError`](https://python-all.ru/3.14/library/exceptions.html#RuntimeError).

#### `syslog.closelog()`

Сбрасывает значения модуля syslog и вызывает системную библиотечную функцию `closelog()`.

Это заставляет модуль вести себя так же, как при первоначальном импорте. Например, [`openlog()`](https://python-all.ru/3.14/library/syslog.html#syslog.openlog) будет вызван при первом вызове [`syslog()`](https://python-all.ru/3.14/library/syslog.html#module-syslog) (если `openlog()` ещё не был вызван), а *ident* и остальные параметры `openlog()` сбрасываются до значений по умолчанию.

Возбуждает [событие аудита](https://python-all.ru/3.14/library/sys.html#auditing) `syslog.closelog` без аргументов.

Изменено в версии 3.12: Эта функция ограничена в подынтерпретаторах. (Это затрагивает только код, который выполняется в нескольких интерпретаторах, и это ограничение не актуально для большинства пользователей.) Вызов разрешён только в главном интерпретаторе. При вызове в подынтерпретаторе будет возбуждено исключение [`RuntimeError`](https://python-all.ru/3.14/library/exceptions.html#RuntimeError).

#### `syslog.setlogmask(maskpri)`

Устанавливает маску приоритетов равной *maskpri* и возвращает предыдущее значение маски. Вызовы [`syslog()`](https://python-all.ru/3.14/library/syslog.html#module-syslog) с уровнем приоритета, не установленным в *maskpri*, игнорируются. По умолчанию регистрируются все приоритеты. Функция `LOG_MASK(pri)` вычисляет маску для отдельного приоритета *pri*. Функция `LOG_UPTO(pri)` вычисляет маску для всех приоритетов до *pri* включительно.

Вызывает [событие аудита](https://python-all.ru/3.14/library/sys.html#auditing) `syslog.setlogmask` с аргументом `maskpri`.

Модуль определяет следующие константы:

#### `syslog.LOG_EMERG`

#### `syslog.LOG_ALERT`

#### `syslog.LOG_CRIT`

#### `syslog.LOG_ERR`

#### `syslog.LOG_WARNING`

#### `syslog.LOG_NOTICE`

#### `syslog.LOG_INFO`

#### `syslog.LOG_DEBUG`

Уровни приоритетов (от высокого к низкому).

#### `syslog.LOG_AUTH`

#### `syslog.LOG_AUTHPRIV`

#### `syslog.LOG_CRON`

#### `syslog.LOG_DAEMON`

#### `syslog.LOG_FTP`

#### `syslog.LOG_INSTALL`

#### `syslog.LOG_KERN`

#### `syslog.LOG_LAUNCHD`

#### `syslog.LOG_LPR`

#### `syslog.LOG_MAIL`

#### `syslog.LOG_NETINFO`

#### `syslog.LOG_NEWS`

#### `syslog.LOG_RAS`

#### `syslog.LOG_REMOTEAUTH`

#### `syslog.LOG_SYSLOG`

#### `syslog.LOG_USER`

#### `syslog.LOG_UUCP`

#### `syslog.LOG_LOCAL0`

#### `syslog.LOG_LOCAL1`

#### `syslog.LOG_LOCAL2`

#### `syslog.LOG_LOCAL3`

#### `syslog.LOG_LOCAL4`

#### `syslog.LOG_LOCAL5`

#### `syslog.LOG_LOCAL6`

#### `syslog.LOG_LOCAL7`

Источники, в зависимости от доступности в `<syslog.h>` для [`LOG_AUTHPRIV`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_AUTHPRIV), [`LOG_FTP`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_FTP), [`LOG_NETINFO`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_NETINFO), [`LOG_REMOTEAUTH`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_REMOTEAUTH), [`LOG_INSTALL`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_INSTALL) и [`LOG_RAS`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_RAS).

Изменено в версии 3.13: Добавлены [`LOG_FTP`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_FTP), [`LOG_NETINFO`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_NETINFO), [`LOG_REMOTEAUTH`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_REMOTEAUTH), [`LOG_INSTALL`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_INSTALL), [`LOG_RAS`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_RAS) и [`LOG_LAUNCHD`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_LAUNCHD).

#### `syslog.LOG_PID`

#### `syslog.LOG_CONS`

#### `syslog.LOG_NDELAY`

#### `syslog.LOG_ODELAY`

#### `syslog.LOG_NOWAIT`

#### `syslog.LOG_PERROR`

Параметры ведения журнала, в зависимости от доступности в `<syslog.h>` для [`LOG_ODELAY`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_ODELAY), [`LOG_NOWAIT`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_NOWAIT) и [`LOG_PERROR`](https://python-all.ru/3.14/library/syslog.html#syslog.LOG_PERROR).

## Примеры

### Простой пример

Простой набор примеров:

```python
import syslog

syslog.syslog('Processing started')
if error:
    syslog.syslog(syslog.LOG_ERR, 'Processing started')
```

Пример настройки некоторых параметров ведения журнала: они включают идентификатор процесса в записываемые сообщения и записывают эти сообщения в средство назначения, используемое для журналирования почты.

```python
syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL)
syslog.syslog('E-mail processing initiated...')
```
