# `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: Unix, not WASI, not iOS.

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