syslog — Rotinas da biblioteca syslog do Unix


Este módulo fornece uma interface para as rotinas da biblioteca syslog do Unix. Consulte as páginas de manual do Unix para uma descrição detalhada do recurso syslog.

Disponibilidade

Este módulo é uma camada para a família de rotinas syslog do sistema. Uma biblioteca Python pura que pode se comunicar com um servidor syslog está disponível no módulo logging.handlers como SysLogHandler.

O módulo define as seguintes funções:

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

Envia a string message para o registrador do sistema. Uma nova linha final é adicionada, se necessário. Cada mensagem é marcada com uma prioridade composta por um facility e um level. O argumento opcional priority, cujo padrão é LOG_INFO, determina a prioridade da mensagem. Se a facilidade não está codificada em priority usando o OU lógico (LOG_INFO | LOG_USER), o valor dado na chamada openlog() é usado.

Se openlog() não foi chamado antes da chamada para syslog(), openlog() será chamado sem argumentos.

Levanta um evento de auditoria syslog.syslog com os argumentos priority, message.

Alterado na versão 3.2: Nas versões anteriores, openlog() não seria chamado automaticamente se não fosse chamado antes da chamada para syslog(), adiando a implementação do syslog para chamar openlog().

Alterado na versão 3.12: Esta função é restrita em subinterpretadores. (Apenas o código que executa em vários interpretadores é afetado e a restrição não é relevante para a maioria dos usuários.) openlog() deve ser chamado no interpretador principal antes de syslog() pode ser usado em um subinterpretador. Caso contrário, vai levantar RuntimeError.

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

As opções de log das chamadas subsequentes syslog() podem ser definidas chamando openlog(). syslog() irá chamar openlog() sem argumentos se o log não estiver aberto no momento.

O argumento nomeado opcional ident é uma string que é prefixada a cada mensagem, e o padrão é sys.argv[0] com os componentes do caminho inicial removidos. O argumento nomeado opcional logoption (o padrão é 0) é um campo de bits – veja abaixo os valores possíveis para combinar. O argumento nomeado opcional facility (o padrão é LOG_USER) define o recurso padrão para mensagens que não possuem um recurso explicitamente codificado.

Levanta um evento de auditoria syslog.openlog com os argumentos ident, logoption, facility.

Alterado na versão 3.2: Nas versões anteriores, os argumentos nomeados não eram permitidos e ident era obrigatório.

Alterado na versão 3.12: Esta função é restrita em subinterpretadores. (Apenas o código que executa em vários interpretadores é afetado e a restrição não é relevante para a maioria dos usuários.) Isso deve ser chamado no interpretador principal.Vai levantar RuntimeError se chamado em um subinterpretador.

syslog.closelog()

Redefine os valores do módulo syslog e chama a biblioteca de sistema closelog().

Isso faz com que o módulo se comporte como quando importado inicialmente. Por exemplo, openlog() será chamado na primeira chamada syslog() (se openlog() ainda não foi chamado), e ident e outro openlog() os parâmetros são redefinidos para os padrões.

Levanta um evento de auditoria syslog.closelog sem argumentos.

Alterado na versão 3.12: Esta função é restrita em subinterpretadores. (Apenas o código que executa em vários interpretadores é afetado e a restrição não é relevante para a maioria dos usuários.) Isso deve ser chamado no interpretador principal.Vai levantar RuntimeError se chamado em um subinterpretador.

syslog.setlogmask(maskpri)

Define a máscara de prioridade como maskpri e retorna o valor da máscara anterior. Chamadas para syslog() com um nível de prioridade não definido em maskpri são ignoradas. O padrão é registrar todas as prioridades. A função LOG_MASK(pri) calcula a máscara para a prioridade individual pri. A função LOG_UPTO(pri) calcula a máscara para todas as prioridades até e incluindo pri.

Levanta um evento de auditoria syslog.setlogmask com o argumento maskpri.

O módulo define as seguintes constantes:

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

Níveis de prioridade (alto a baixo).

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

Facilidades, dependendo da disponibilidade em <syslog.h> para LOG_AUTHPRIV, LOG_FTP, LOG_NETINFO, LOG_REMOTEAUTH, LOG_INSTALL e LOG_RAS.

Alterado na versão 3.13: Adicionados LOG_FTP, LOG_NETINFO, LOG_REMOTEAUTH, LOG_INSTALL, LOG_RAS e LOG_LAUNCHD.

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

Opções de log, dependendo da disponibilidade em <syslog.h> para LOG_ODELAY, LOG_NOWAIT e LOG_PERROR.

Exemplos

Exemplo simples

Um conjunto simples de exemplos:

import syslog

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

Um exemplo de configuração de algumas opções de log, isso incluiria o ID do processo nas mensagens registradas e escreveria as mensagens no recurso de destino usado para o log de correio:

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