syslog.md
1> **Источник:** https://python-all.ru/3.2/library/syslog.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 33.13. [`syslog`](https://python-all.ru/3.2/library/syslog.html#module-syslog) – библиотечные функции syslog в Unix89*Платформы:* Unix1011Этот модуль предоставляет интерфейс к библиотечным функциям Unix `syslog`. За подробным описанием службы `syslog` обращайтесь к справочным страницам Unix.1213Этот модуль является обёрткой для семейства системных функций `syslog`. В модуле [`logging.handlers`](https://python-all.ru/3.2/library/logging.handlers.html#module-logging.handlers) доступна чистая библиотека Python, которая может взаимодействовать с сервером syslog, под именем `SysLogHandler`.1415Модуль определяет следующие функции:1617#### `syslog.syslog(message)`1819#### `syslog.syslog(priority, message)`2021Отправляет строку *message* системному журналу. При необходимости добавляется завершающий символ новой строки. Каждое сообщение помечается приоритетом, состоящим из *службы* и *уровня*. Необязательный аргумент *priority*, по умолчанию равный `LOG_INFO`, определяет приоритет сообщения. Если служба не закодирована в *priority* с помощью логического ИЛИ (`LOG_INFO | LOG_USER`), используется значение, заданное в вызове [`openlog()`](https://python-all.ru/3.2/library/syslog.html#syslog.openlog).2223Если [`openlog()`](https://python-all.ru/3.2/library/syslog.html#syslog.openlog) не вызывался до вызова [`syslog()`](https://python-all.ru/3.2/library/syslog.html#module-syslog), `openlog()` будет вызван без аргументов.2425#### `syslog.openlog([ident[, logoption[, facility]]])`2627Параметры журналирования последующих вызовов [`syslog()`](https://python-all.ru/3.2/library/syslog.html#module-syslog) можно задать с помощью вызова [`openlog()`](https://python-all.ru/3.2/library/syslog.html#syslog.openlog). [`syslog()`](https://python-all.ru/3.2/library/syslog.html#module-syslog) вызовет [`openlog()`](https://python-all.ru/3.2/library/syslog.html#syslog.openlog) без аргументов, если журнал в данный момент не открыт.2829Необязательный именованный аргумент *ident* – это строка, которая добавляется к каждому сообщению, и по умолчанию равна `sys.argv[0]` с удалёнными ведущими компонентами пути. Необязательный именованный аргумент *logoption* (по умолчанию 0) – это битовое поле – возможные значения для комбинирования см. ниже. Необязательный именованный аргумент *службы* (по умолчанию `LOG_USER`) задаёт службу по умолчанию для сообщений, в которых служба явно не закодирована.3031Изменено в версии 3.2: В предыдущих версиях именованные аргументы не допускались, и *ident* был обязательным. Значение по умолчанию для *ident* зависело от системных библиотек и часто было `python` вместо имени файла программы на Python.3233#### `syslog.closelog()`3435Сбрасывает значения модуля syslog и вызывает системную библиотечную функцию `closelog()`.3637Из-за этого модуль ведёт себя так же, как при первоначальном импорте. Например, [`openlog()`](https://python-all.ru/3.2/library/syslog.html#syslog.openlog) будет вызван при первом вызове [`syslog()`](https://python-all.ru/3.2/library/syslog.html#module-syslog) (если [`openlog()`](https://python-all.ru/3.2/library/syslog.html#syslog.openlog) ещё не был вызван), а *ident* и другие параметры [`openlog()`](https://python-all.ru/3.2/library/syslog.html#syslog.openlog) сбрасываются в значения по умолчанию.3839#### `syslog.setlogmask(maskpri)`4041Устанавливает маску приоритетов равной *maskpri* и возвращает предыдущее значение маски. Вызовы [`syslog()`](https://python-all.ru/3.2/library/syslog.html#module-syslog) с уровнем приоритета, не установленным в *maskpri*, игнорируются. По умолчанию журналируются все приоритеты. Функция `LOG_MASK(pri)` вычисляет маску для отдельного приоритета *pri*. Функция `LOG_UPTO(pri)` вычисляет маску для всех приоритетов до *pri* включительно.4243Модуль определяет следующие константы:4445**Уровни приоритета (от высокого к низкому):**4647`LOG_EMERG`4849,5051`LOG_ALERT`5253,5455`LOG_CRIT`5657,5859`LOG_ERR`6061,6263`LOG_WARNING`6465,6667`LOG_NOTICE`6869,7071`LOG_INFO`7273,7475`LOG_DEBUG`7677.7879**Службы:**8081`LOG_KERN`8283,8485`LOG_USER`8687,8889`LOG_MAIL`9091,9293`LOG_DAEMON`9495,9697`LOG_AUTH`9899,100101`LOG_LPR`102103,104105`LOG_NEWS`106107,108109`LOG_UUCP`110111,112113`LOG_CRON`114115,116117`LOG_SYSLOG`118119и120121`LOG_LOCAL0`122123до124125`LOG_LOCAL7`126127.128129**Опции журналирования:**130131`LOG_PID`132133,134135`LOG_CONS`136137,138139`LOG_NDELAY`140141,142143`LOG_NOWAIT`144145и146147`LOG_PERROR`148149, если определено в150151`<syslog.h>`152153.154155## 33.13.1. Примеры156157### 33.13.1.1. Простой пример158159Простой набор примеров:160161```python162import syslog163164syslog.syslog('Processing started')165if error:166 syslog.syslog(syslog.LOG_ERR, 'Processing started')167```168169Пример настройки некоторых параметров ведения журнала: они включают идентификатор процесса в записываемые сообщения и записывают эти сообщения в средство назначения, используемое для журналирования почты.170171```python172syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL)173syslog.syslog('E-mail processing initiated...')174```175