SYSLOG(3)

BEZEICHNUNG
closelog, openlog, syslog, vsyslog - verschickt Nachrichten an die Systemprotokollierung

ÜBERSICHT
#include <syslog.h>

void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format, ...);
void closelog(void);

#include <stdarg.h>

void vsyslog(int priority, const char *format, va_list ap);

Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

vsyslog(): _BSD_SOURCE

BESCHREIBUNG
closelog() schließt den Deskriptor, der zum Schreiben der Protokoll-Nachrichten benutzt wurde. Die Benutzung von closelog() ist optional.

openlog() öffnet für ein Programm eine Verbindung zum Syslog-Daemon. Die Zeichenkette ident wird jeder Nachricht vorangestellt und wird üblicherweise auf den Programmnamen gesetzt. Falls ident gleich NULL ist, wird der Programmname benutzt. (POSIX.1-2008 enthält keine Spezifikation für den Fall, dass ident gleich NULL ist) Der option-Parameter definiert Schalter, welche die Ausführung von Openlog und darauffolgende Aufrufe von syslog() steuern. Der facility-Parameter definiert einen Standardwert, welcher benutzt wird, falls in darauffolgenden syslog()-Aufrufen nichts spezifiziert wurde. option und facility werden im nächsten Abschnitt behandelt. Die Benutzung von openlog() ist optional; gegebenenfalls wird die Routine automatisch von syslog() aufgerufen, wenn es nötig ist, dann wird ident auf NULL gesetzt.

syslog() erzeugt eine Protokoll-Nachricht, die vom syslogd(8) verteilt wird. priority ist das Ergebnis einer ODER-Verknüpfung von facility und einem level, die im nächsten Abschnitt erläutert werden. Die verbleibenden Parameter sind format, wie bei printf(3) und weitere Argumente, die von format benötigt werden. Allerdings wird die Zwei-Zeichen-Folge %m durch die Fehlermeldung strerror(errno) ersetzt werden. Falls nötig, wird noch ein Zeilenumbruchzeichen angehängt. Die Funktion vsyslog() führt die gleiche Aufgabe aus wie syslog(), mit dem Unterschied, dass sie eine Liste an Parametern erhält, die mit Makros aus der stdarg(3)-Variablenliste abgefragt werden. Dieser Abschnitt beschreibt die Parameter, die benutzt werden, um die Werte von option, facility und priority zu setzen.

  option
Der Parameter option von openlog() ist eine ODER-Verknüpfung von einer der Folgenden:

LOG_CONS
    schreibt direkt auf die Systemkonsole, falls ein Fehler beim Schreiben an die Systemprotokollierung auftritt.

LOG_NDELAY
    öffnet sofort eine Verbindung (normalerweise wird die Verbindung erst dann hergestellt, wenn die erste Nachricht protokolliert werden soll).

LOG_NOWAIT
    wartet nicht auf Kindprozesse, welche eventuell beim Protokollieren der Nachricht erzeugt wurden. (Die GNU-C-Bibliothek erzeugt keine Kindprozesse, insofern hat diese Option keine Auswirkung unter Linux.)

LOG_ODELAY
    das Gegenteil von LOG_NDELAY; das Öffnen der Verbindung wird bis zum Aufruf von syslog() verzögert. (Das ist das Standardverhalten und muss nicht angegeben werden.)

LOG_PERROR
    (nicht in POSIX.1-2001 oder POSIX.1-2008) schreibe ebenso auf die Standardfehlerausgabe stderr.

LOG_PID
    füge die Prozess-ID in jede Nachricht ein.

  facility
Der Parameter facility wird benutzt, um anzugeben, welcher Programmtyp die Nachricht protokolliert. Dadurch kann mit der Konfigurationsdatei syslog.conf erreicht werden, dass Nachrichten von unterschiedlichen Einrichtungen auch unterschiedlich behandelt werden.

LOG_AUTH
    Sicherheits-/Autorisations-Nachrichten

LOG_AUTHPRIV
    Sicherheits-/Autorisations-Nachrichten (privat)

LOG_CRON
    Uhr-Daemon (cron und at)

LOG_DAEMON
    System-Daemonen ohne spezielle Einrichtungswerte

LOG_FTP
    FTP-Daemon

LOG_KERN
    Kernel-Nachrichten (diese können nicht von Benutzerprozessen erzeugt werden)

LOG_LOCAL0 bis LOG_LOCAL7
    reserviert für den lokalen Gebrauch

LOG_LPR
    Zeilendrucker-Untersystem

LOG_MAIL
    Mail-Subsystem

LOG_NEWS
    Usenet Nachrichten-Untersystem

LOG_SYSLOG
    Nachrichten, die intern vom syslogd(8) erzeugt wurden

LOG_USER (Standardwert)
    generische Nachrichten auf Anwenderebene

LOG_UUCP
    UUCP-Subsystem

  level
Dieser Parameter gibt die Dringlichkeitsstufe der Nachricht an. Die Stufen sind in absteigender Wichtigkeit:

LOG_EMERG
    Das System ist unbrauchbar.

LOG_ALERT
    Es muss sofort gehandelt werden.

LOG_CRIT
    kritische Bedingungen

LOG_ERR
    Fehlerbedingungen

LOG_WARNING
    Warnungsbedingungen

LOG_NOTICE
    normale, aber bedeutende Bedingung

LOG_INFO
    Information

LOG_DEBUG
    Debuginformation

Die Funktion setlogmask(3) kann dazu benutzt werden, um das Protokollieren auf bestimmte Level einzuschränken.

KONFORM ZU
Die Funktionen openlog(), closelog() und syslog() (aber nicht vsyslog()) sind in SUSv2, POSIX.1-2001, and POSIX.1-2008 spezifiert. POSIX.1-2001 spezifiert nur die Werte LOG_USER und LOG_LOCAL* für facility. Auf den meisten UNIX Systemen gibt es jedoch auch die anderen facility-Optionen mit der Ausnahme von LOG_AUTHPRIV und LOG_FTP. Der Wert LOG_PERROR für den Parameter option ist in POSIX.1-2001 oder POSIX.1-2008 nicht spezifiert, aber auf den meisten UNIX Versionen verfügbar.

ANMERKUNGEN
Das Argument ident im Aufruf von openlog() wird wahrscheinlich unverändert gespeichert. Falls sich demnach die Zeichenkette, auf die sich ident bezieht, ändert, kann syslog() die geänderte Zeichenkette voranstellen. Falls die Zeichenkette nicht mehr gefunden werden kann, ergibt dies ein undefiniertes Ergebnis. Die portabelste Lösung ist die Verwendung einer konstanten Zeichenkette.

Übergeben Sie niemals eine Zeichenkette, die Daten von Benutzeriengaben enthält, als Format, sondern benutzen Sie das Folgende:
    syslog(priority, "%s", string);

SIEHE AUCH
logger(1), setlogmask(3), syslog.conf(5), syslogd(8)

KOLOPHON
This page is part of release 3.70 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Gerd Koenig <koenig.bodensee@googlemail.com> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.