syslog — Подпрограммы библиотеки Unix syslog


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

Availability: Unix, не WASI, не iOS.

Этот модуль включает в себя семейство системных процедур syslog. Чистая библиотека Python, которая может обращаться к серверу syslog, доступна в модуле logging.handlers в виде SysLogHandler.

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

syslog.syslog(message)
syslog.syslog(priority, message)

Отправьте строку сообщение в системный регистратор. При необходимости добавляется завершающая новая строка. Каждое сообщение помечается приоритетом, состоящим из facility и level. Необязательный аргумент priority, который по умолчанию равен LOG_INFO, определяет приоритет сообщения. Если объект не закодирован в priority с помощью логического-или (LOG_INFO | LOG_USER), используется значение, заданное в вызове openlog().

Если openlog() не был вызван до вызова syslog(), то openlog() будет вызван без аргументов.

Поднимает auditing event syslog.syslog с аргументами priority, message.

Изменено в версии 3.2: В предыдущих версиях openlog() не вызывался автоматически, если он не был вызван до вызова syslog(), откладывая вызов openlog() на реализацию syslog.

Изменено в версии 3.12: Эта функция ограничена в субинтерпретаторах. (Это касается только кода, выполняющегося в нескольких интерпретаторах, и для большинства пользователей это ограничение не имеет значения). openlog() должен быть вызван в основном интерпретаторе, прежде чем syslog() может быть использован в подинтерпретаторе. В противном случае будет вызвана RuntimeError.

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

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

Необязательный аргумент ident - это строка, которая добавляется к каждому сообщению и по умолчанию имеет значение sys.argv[0] с удаленными ведущими компонентами пути. Необязательный аргумент logoption (по умолчанию 0) представляет собой битовое поле - см. ниже возможные значения для комбинирования. Необязательный аргумент facility (по умолчанию LOG_USER) задает объект по умолчанию для сообщений, в которых объект не закодирован явно.

Поднимает auditing event syslog.openlog с аргументами ident, logoption, facility.

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

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

syslog.closelog()

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

Это заставит модуль вести себя так, как он ведет себя при первоначальном импорте. Например, openlog() будет вызван при первом вызове syslog() (если openlog() еще не был вызван), а ident и другие параметры openlog() будут сброшены на значения по умолчанию.

Поднимает auditing event syslog.closelog без аргументов.

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

syslog.setlogmask(maskpri)

Устанавливает маску приоритета в maskpri и возвращает предыдущее значение маски. Вызовы к syslog() с уровнем приоритета, не установленным в maskpri, игнорируются. По умолчанию все приоритеты регистрируются. Функция LOG_MASK(pri) вычисляет маску для отдельного приоритета pri. Функция LOG_UPTO(pri) вычисляет маску для всех приоритетов до pri включительно.

Поднимает auditing event 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, LOG_FTP, LOG_NETINFO, LOG_REMOTEAUTH, LOG_INSTALL и LOG_RAS.

Изменено в версии 3.13: Добавлены LOG_FTP, LOG_NETINFO, LOG_REMOTEAUTH, LOG_INSTALL, LOG_RAS и LOG_LAUNCHD.

syslog.LOG_PID
syslog.LOG_CONS
syslog.LOG_NDELAY
syslog.LOG_ODELAY
syslog.LOG_NOWAIT
syslog.LOG_PERROR

Варианты журналов, в зависимости от наличия в <syslog.h> для LOG_ODELAY, LOG_NOWAIT и LOG_PERROR.

Примеры

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

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

import syslog

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

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

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