35.13. 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.

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.

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.

Alterado na versão 3.2: In previous versions, keyword arguments were not allowed, and ident was required. The default for ident was dependent on the system libraries, and often was python instead of the name of the python program file.

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.

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.

O módulo define as seguintes constantes:

Níveis de prioridade (alto a baixo):

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

Facilidades:

LOG_KERN, LOG_USER, LOG_MAIL, LOG_DAEMON, LOG_AUTH, LOG_LPR, LOG_NEWS, LOG_UUCP, LOG_CRON, LOG_SYSLOG, LOG_LOCAL0 até LOG_LOCAL7 e, se definido em <syslog.h>, LOG_AUTHPRIV.

Opções de log:

LOG_PID, LOG_CONS, LOG_NDELAY e, se definido em <syslog.h>, LOG_ODELAY, LOG_NOWAIT e LOG_PERROR.

35.13.1. Exemplos

35.13.1.1. Exemplo simples

Um conjunto de exemplos simples:

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