syslog(3) Library Functions Manual syslog(3) BEZEICHNUNG closelog, openlog, syslog, vsyslog - verschickt Nachrichten an die Systemprotokollierung BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include void openlog(const char *ident, int option, int einrichtung); void syslog(int prioritat, const char *format, ); void closelog(void); void vsyslog(int prioritat, const char *format, va_list ap); Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)): vsyslog(): Seit Glibc 2.19: _DEFAULT_SOURCE Glibc 2.19 und alter: _BSD_SOURCE BESCHREIBUNG openlog() openlog() offnet fur ein Programm eine Verbindung zum Syslog-Daemon. Die Zeichenkette ident wird jeder Nachricht vorangestellt und wird ublicherweise auf den Programmnamen gesetzt. Falls ident gleich NULL ist, wird der Programmname benutzt. (POSIX.1-2008 enthalt keine Spezifikation fur den Fall, dass ident gleich NULL ist) Der option-Parameter definiert Schalter, welche die Ausfuhrung von Openlog und darauffolgende Aufrufe von syslog() steuern. Der einrichtung-Parameter definiert einen Standardwert, welcher benutzt wird, falls in darauffolgenden syslog()-Aufrufen nichts spezifiziert wurde. Die Werte, die fur option und einrichtung angegeben werden durfen, werden weiter unten beschrieben. Die Benutzung von openlog() ist optional; gegebenenfalls wird die Routine automatisch von syslog() aufgerufen, wenn es notig ist, dann wird ident auf NULL gesetzt. syslog() und vsyslog() syslog() erzeugt eine Protokoll-Nachricht, die vom syslogd(8) verteilt wird. Der Parameter prioritat ist das Ergebnis einer ODER-Verknupfung eines Werts einrichtung und eines Werts level (weiter unten beschrieben). Falls kein Wert einrichtung mit prioritat ODER-verknupft wird, dann wird der durch openlog() gesetzte Vorgabewert verwandt, oder, falls es keinen vorhergehenden Aufruf openlog() gab, die Vorgabe LOG_USER verwandt. Die verbleibenden Parameter sind format, wie bei printf(3) und weitere Parameter, die von format benotigt werden. Allerdings wird die Zwei-Zeichen-Folge %m durch die Fehlermeldung strerror(errno) ersetzt werden. Die Formatzeichenkette muss kein abschliessendes Zeilenumbruchzeichen enthalten. Die Funktion vsyslog() fuhrt die gleiche Aufgabe aus wie syslog(), mit dem Unterschied, dass sie eine Liste an Parametern erhalt, die mit Makros aus der stdarg(3)-Variablenliste abgefragt werden. closelog() closelog() schliesst den Dateideskriptor, der zum Schreiben der Protokoll-Nachrichten benutzt wurde. Die Benutzung von closelog() ist optional. Werte fur option Der Parameter option von openlog() ist eine Bitmaske, die durch ODER-Verknupfung beliebiger der folgenden Werte erstellt wird: LOG_CONS schreibt direkt auf die Systemkonsole, falls ein Fehler beim Schreiben an die Systemprotokollierung auftritt. LOG_NDELAY offnet die Verbindung sofort (normalerweise wird die Verbindung geoffnet, wenn die erste Nachricht protokolliert wird). Dies kann zum Beispiel nutzlich sein, falls durch ein nachfolgendes chroot(2) die intern von der Protokollierungseinrichtung verwandten Pfadnamen unerreichbar werden wurden. 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 Offnen der Verbindung wird bis zum Aufruf von syslog() verzogert. (Das ist das Standardverhalten und muss nicht angegeben werden.) LOG_PERROR (nicht in POSIX.1-2001 oder POSIX.1-2008) die Nachricht auch nach stderr protokollieren. LOG_PID fuge die PID des Aufrufenden in jede Nachricht ein. Werte fur einrichtung Der Parameter einrichtung 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 konnen nicht von Benutzerprozessen erzeugt werden) LOG_LOCAL0 bis LOG_LOCAL7 reserviert fur 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 Werte fur 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 einzuschranken. ATTRIBUTE Siehe attributes(7) fur eine Erlauterung der in diesem Abschnitt verwandten Ausdrucke. +---------------------+-------------------------+----------------------+ |Schnittstelle | Attribut | Wert | +---------------------+-------------------------+----------------------+ |openlog(), | Multithread-Fahigkeit | MT-Sicher | |closelog() | | | +---------------------+-------------------------+----------------------+ |syslog(), vsyslog() | Multithread-Fahigkeit | MT-Sicher env locale | +---------------------+-------------------------+----------------------+ STANDARDS syslog() openlog() closelog() POSIX.1-2008. vsyslog() Keine. GESCHICHTE syslog() 4.2BSD, SUSv2, POSIX.1-2001. openlog() closelog() 4.3BSD, SUSv2, POSIX.1-2001. vsyslog() 4.3BSD-Reno. POSIX.1-2001 spezifiert nur die Werte LOG_USER und LOG_LOCAL* fur einrichtung. Auf den meisten UNIX-Systemen gibt es jedoch auch die anderen einrichtung-Optionen mit der Ausnahme von LOG_AUTHPRIV und LOG_FTP. Der Wert LOG_PERROR fur den Parameter option ist in POSIX.1-2001 oder POSIX.1-2008 nicht spezifiert, aber auf den meisten UNIX-Versionen verfugbar. ANMERKUNGEN Das Argument ident im Aufruf von openlog() wird wahrscheinlich unverandert gespeichert. Falls sich demnach die Zeichenkette, auf die sich ident bezieht, andert, kann syslog() die geanderte Zeichenkette voranstellen. Falls die Zeichenkette nicht mehr gefunden werden kann, ergibt dies ein undefiniertes Ergebnis. Die portabelste Losung ist die Verwendung einer konstanten Zeichenkette. Ubergeben Sie niemals eine Zeichenkette, die Daten von Benutzeriengaben enthalt, als Format, sondern benutzen Sie das Folgende: syslog(priority, "%s", string); SIEHE AUCH journalctl(1), logger(1), setlogmask(3), syslog.conf(5), syslogd(8) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Gerd Koenig und Mario Blattermann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 syslog(3)