Документация Python неофициальный перевод

syslog.md

185 строк · 7.3 КБ · обычная страница · сырой текст · скачать

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