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

35.13. syslog – библиотечные процедуры syslog для Unixsyslog – Unix syslog library routines


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

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

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

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

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

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

syslog.openlog(identident, logoptionlogoption, facilityfacility]]])

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

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

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

syslog.closelog()

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

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

syslog.setlogmask(maskpri)

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

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

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

LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG.

Службы:

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.

Опции журналирования:

LOG_PID, LOG_CONS, LOG_NDELAY и, если определены в <syslog.h>, LOG_ODELAY, LOG_NOWAIT и LOG_PERROR.

35.13.1. ПримерыExamples

35.13.1.1. Простой примерSimple example

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

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...')