syslog — Unix-syslog-Bibliotheksroutinen


Dieses Modul bietet eine Schnittstelle zu den Unix syslog-Bibliotheksroutinen. Für eine detaillierte Beschreibung der syslog-Einrichtung konsultieren Sie die Unix-Handbuchseiten.

Verfügbarkeit: Unix, nicht WASI, nicht iOS.

Dieses Modul wrappt die System-Routinefamilie syslog. Eine reine Python-Bibliothek, die mit einem Syslog-Server kommunizieren kann, ist im Modul logging.handlers als SysLogHandler verfügbar.

Das Modul definiert die folgenden Funktionen

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

Sendet den String message an den Systemlogger. Ein abschließendes Newline wird bei Bedarf hinzugefügt. Jede Nachricht wird mit einer Priorität versehen, die sich aus einer facility und einem level zusammensetzt. Das optionale Argument priority, das standardmäßig auf LOG_INFO gesetzt ist, bestimmt die Priorität der Nachricht. Wenn die Facility nicht in priority mittels logischem ODER (LOG_INFO | LOG_USER) kodiert ist, wird der Wert aus dem Aufruf von openlog() verwendet.

Wenn openlog() nicht vor dem Aufruf von syslog() aufgerufen wurde, wird openlog() ohne Argumente aufgerufen.

Löst ein Auditing-Ereignis syslog.syslog mit den Argumenten priority, message aus.

Geändert in Version 3.2: In früheren Versionen wurde openlog() nicht automatisch aufgerufen, wenn es vor dem Aufruf von syslog() nicht aufgerufen wurde, und überließ es der Syslog-Implementierung, openlog() aufzurufen.

Geändert in Version 3.12: Diese Funktion ist in Subinterpretern eingeschränkt. (Nur Code, der in mehreren Interpretern ausgeführt wird, ist betroffen, und die Einschränkung ist für die meisten Benutzer nicht relevant.) openlog() muss im Hauptinterpreter aufgerufen werden, bevor syslog() in einem Subinterpreter verwendet werden darf. Andernfalls wird RuntimeError ausgelöst.

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

Die Protokollierungsoptionen für nachfolgende Aufrufe von syslog() können durch Aufruf von openlog() gesetzt werden. syslog() ruft openlog() ohne Argumente auf, wenn das Log nicht geöffnet ist.

Das optionale Schlüsselwortargument ident ist ein String, der jeder Nachricht vorangestellt wird und standardmäßig auf sys.argv[0] gesetzt ist, wobei führende Pfadkomponenten entfernt werden. Das optionale Schlüsselwortargument logoption (standardmäßig 0) ist ein Bitfeld – siehe unten für mögliche Werte, die kombiniert werden können. Das optionale Schlüsselwortargument facility (standardmäßig LOG_USER) legt die Standard-Facility für Nachrichten fest, die keine explizit kodierte Facility haben.

Löst ein Auditing-Ereignis syslog.openlog mit den Argumenten ident, logoption, facility aus.

Geändert in Version 3.2: In früheren Versionen waren Schlüsselwortargumente nicht erlaubt und ident war erforderlich.

Geändert in Version 3.12: Diese Funktion ist in Subinterpretern eingeschränkt. (Nur Code, der in mehreren Interpretern ausgeführt wird, ist betroffen, und die Einschränkung ist für die meisten Benutzer nicht relevant.) Diese Funktion darf nur im Hauptinterpreter aufgerufen werden. Wenn sie in einem Subinterpreter aufgerufen wird, löst sie RuntimeError aus.

syslog.closelog()

Setzt die Werte des syslog-Moduls zurück und ruft die Systembibliotheksfunktion closelog() auf.

Dadurch verhält sich das Modul so, wie es sich beim erstmaligen Import verhält. Beispielsweise wird openlog() beim ersten Aufruf von syslog() aufgerufen (wenn openlog() noch nicht aufgerufen wurde), und ident sowie andere Parameter von openlog() werden auf die Standardwerte zurückgesetzt.

Löst ein Auditing-Ereignis syslog.closelog ohne Argumente aus.

Geändert in Version 3.12: Diese Funktion ist in Subinterpretern eingeschränkt. (Nur Code, der in mehreren Interpretern ausgeführt wird, ist betroffen, und die Einschränkung ist für die meisten Benutzer nicht relevant.) Diese Funktion darf nur im Hauptinterpreter aufgerufen werden. Wenn sie in einem Subinterpreter aufgerufen wird, löst sie RuntimeError aus.

syslog.setlogmask(maskpri)

Setzt die Prioritätsmaske auf maskpri und gibt den vorherigen Maskenwert zurück. Aufrufe von syslog() mit einer Prioritätsstufe, die nicht in maskpri gesetzt ist, werden ignoriert. Standardmäßig werden alle Prioritäten protokolliert. Die Funktion LOG_MASK(pri) berechnet die Maske für die einzelne Priorität pri. Die Funktion LOG_UPTO(pri) berechnet die Maske für alle Prioritäten bis einschließlich pri.

Löst ein Auditing-Ereignis syslog.setlogmask mit dem Argument maskpri aus.

Das Modul definiert die folgenden Konstanten

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

Prioritätsstufen (von hoch nach niedrig).

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

Facilities, je nach Verfügbarkeit in <syslog.h> für LOG_AUTHPRIV, LOG_FTP, LOG_NETINFO, LOG_REMOTEAUTH, LOG_INSTALL und LOG_RAS.

Geändert in Version 3.13: Hinzugefügt wurden LOG_FTP, LOG_NETINFO, LOG_REMOTEAUTH, LOG_INSTALL, LOG_RAS und LOG_LAUNCHD.

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

Log-Optionen, je nach Verfügbarkeit in <syslog.h> für LOG_ODELAY, LOG_NOWAIT und LOG_PERROR.

Beispiele

Einfaches Beispiel

Eine einfache Sammlung von Beispielen

import syslog

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

Ein Beispiel für die Einstellung einiger Log-Optionen. Diese würden die Prozess-ID in die protokollierten Nachrichten aufnehmen und die Nachrichten an die für die Mail-Protokollierung verwendete Ziel-Facility schreiben.

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