syslog — Rutiner för syslog-bibliotek i Unix


Denna modul ger ett gränssnitt till Unix syslog biblioteksrutiner. Se Unix manualsidor för en detaljerad beskrivning av syslog-funktionen.

Tillgänglighet: Unix, not WASI, not iOS.

Denna modul omsluter systemets syslog familj av rutiner. Ett rent Python-bibliotek som kan tala med en syslog-server finns tillgängligt i modulen logging.handlers som SysLogHandler.

Modulen definierar följande funktioner:

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

Skicka strängen message till systemloggaren. En efterföljande ny rad läggs till om det behövs. Varje meddelande märks med en prioritet som består av en facility och en level. Det valfria argumentet priority, som har LOG_INFO som standard, bestämmer meddelandets prioritet. Om faciliteten inte kodas i priority med hjälp av logical-or (LOG_INFO | LOG_USER), används det värde som anges i openlog()-anropet.

Om openlog() inte har anropats före anropet till syslog(), kommer openlog() att anropas utan argument.

Utlöser en auditing event syslog.syslog med argumenten priority, message.

Ändrad i version 3.2: I tidigare versioner anropades inte openlog() automatiskt om den inte anropades före anropet till syslog(), utan det var upp till syslog-implementationen att anropa openlog().

Ändrad i version 3.12: Denna funktion är begränsad i undertolkar. (Endast kod som körs i flera tolkar påverkas och begränsningen är inte relevant för de flesta användare) openlog() måste anropas i huvudtolken innan syslog() kan användas i en undertolk. Annars kommer det att ge upphov till RuntimeError.

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

Loggningsalternativ för efterföljande syslog()-anrop kan ställas in genom att anropa openlog(). syslog() anropar openlog() utan argument om loggen inte är öppen för tillfället.

Det valfria nyckelordsargumentet ident är en sträng som läggs till i varje meddelande och som standard är sys.argv[0] utan inledande sökvägskomponenter. Det valfria nyckelordsargumentet logoption (standard är 0) är ett bitfält - se nedan för möjliga värden att kombinera. Det valfria nyckelordsargumentet facility (standard är LOG_USER) anger standardfaciliteten för meddelanden som inte har en facilitet explicit kodad.

Utlöser en auditing event syslog.openlog med argumenten ident, logoption, facility.

Ändrad i version 3.2: I tidigare versioner var nyckelordsargument inte tillåtna och ident var ett krav.

Ändrad i version 3.12: Denna funktion är begränsad i undertolkar. (Endast kod som körs i flera tolkar påverkas och begränsningen är inte relevant för de flesta användare) Denna funktion kan endast anropas i huvudtolken. Den kommer att ge upphov till RuntimeError om den anropas i en undertolk.

syslog.closelog()

Återställ värdena för syslog-modulen och anropa systembiblioteket closelog().

Detta gör att modulen beter sig som den gör när den importeras första gången. Till exempel kommer openlog() att anropas vid det första syslog()-anropet (om openlog() inte redan har anropats), och ident och andra openlog()-parametrar återställs till standardvärdena.

Utlöser en auditing event syslog.closelog utan argument.

Ändrad i version 3.12: Denna funktion är begränsad i undertolkar. (Endast kod som körs i flera tolkar påverkas och begränsningen är inte relevant för de flesta användare) Denna funktion kan endast anropas i huvudtolken. Den kommer att ge upphov till RuntimeError om den anropas i en undertolk.

syslog.setlogmask(maskpri)

Ställer in prioritetsmasken till maskpri och returnerar det tidigare maskvärdet. Anrop till syslog() med en prioritetsnivå som inte anges i maskpri ignoreras. Standardinställningen är att logga alla prioriteringar. Funktionen LOG_MASK(pri) beräknar masken för den individuella prioriteten pri. Funktionen LOG_UPTO(pri) beräknar masken för alla prioriteringar upp till och med pri.

Utlöser en auditing event syslog.setlogmask med argumentet maskpri.

Modulen definierar följande konstanter:

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

Prioriteringsnivåer (hög till låg).

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

Funktioner, beroende på tillgänglighet i <syslog.h> för LOG_AUTHPRIV, LOG_FTP, LOG_NETINFO, LOG_REMOTEAUTH, LOG_INSTALL och LOG_RAS.

Ändrad i version 3.13: Lagt till LOG_FTP, LOG_NETINFO, LOG_REMOTEAUTH, LOG_INSTALL, LOG_RAS och LOG_LAUNCHD.

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

Loggalternativ, beroende på tillgänglighet i <syslog.h> för LOG_ODELAY, LOG_NOWAIT och LOG_PERROR.

Exempel

Enkelt exempel

En enkel uppsättning exempel:

import syslog

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

Ett exempel på inställning av några loggningsalternativ, dessa skulle inkludera process-ID i loggade meddelanden och skriva meddelandena till den destinationsfacilitet som används för e-postloggning:

syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL)
syslog.syslog("E-postbehandling påbörjad...")