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


Данный модуль предоставляет интерфейс для подпрограмм библиотеки Unix syslog. Обратитесь к страницам руководства Unix за подробным описанием средства syslog.

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

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

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

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

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

Вызывает событие аудита syslog.syslog с аргументами priority, message.

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

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

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

Вызывает событие аудита syslog.openlog с аргументами ident, logoption, facility.

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

syslog.closelog()

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

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

Вызывает событие аудита syslog.closelog без аргументов.

syslog.setlogmask(maskpri)

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

Вызывает событие аудита syslog.setlogmask с аргументом maskpri.

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

Уровни приоритета (от высокого к низкому):
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.

Примеры

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

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

import syslog

syslog.syslog('Обработка началась')
if error:
    syslog.syslog(syslog.LOG_ERR, 'Обработка началась')

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

syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL)
syslog.syslog('Инициирована обработка электронной почты...')