Beschreibung | syslog() schreibt eine Meldung message standardmäßig in die Datei /var/adm/syslog . Optional kann der Systemverwalter für den syslog-Dämon auch andere Protokolldateien festlegen. Einzelheiten zur Funktionsweise und zur Steuerung des syslog-Dämonen finden Sie im Handbuch „POSIX Grundlagen“ [1].
Die Meldung besteht aus einem Meldungskopf und dem Meldungstext. Der Meldungskopf enthält die Angabe des Meldungsgewichts, die Zeitangabe, das Kennzeichen syslog und optional die Prozess-Id. Der Meldungstext wird aus dem Argument message und den darauf folgenden Argumenten erzeugt, als ob diese Argumente an printf() übergeben worden seien, außer dass %m im Formatstring, auf den message zeigt, auch in CRTE-Versionen < V21.0A42 durch die Fehlermeldung ersetzt wird, die dem aktuellen Wert von errno entspricht. Ein nachgestelltes NEWLINE wird ggf. hinzugefügt. Werte für priority werden durch inklusives ODER aus Meldungsgewicht und ggfs. Funktionswert gebildet. Wenn für facility keine Funktion angegeben wurde, wird die vordefinierte Standardfunktion verwendet. Mögliche Werte für das Meldungsgewicht sind: LOG_EMERG
| Eine „panic“-Bedingung. Diese Bedingung wird normalerweise an alle Benutzer übertragen. | LOG_ALERT
| Eine Bedingung, die sofort korrigiert werden sollte, beispielsweise eine beschädigte Systemdatenbank. | LOG_CRIT
| Schwerwiegende Bedingung, beispielsweise Festplattenfehler. | LOG_ERR
| Fehler. | LOG_WARNING
| Warnmeldungen. | LOG_NOTICE
| Bedingungen, bei denen es sich nicht um Fehlerbedingungen handelt, die jedoch spezielle Schritte erfordern. | LOG_INFO
| Informationsmeldungen. | LOG_DEBUG
| Meldungen mit Informationen, die normalerweise nur beim Testen eines Programms verwendet werden. | facility gibt an, welche Anwendung oder welche Systemkomponente die Meldung erzeugt hat. Mögliche Werte sind: LOG_USER
| Von wahlfreien Benutzerprozessen erstellte Meldungen. Dies ist die standardmäßige Funktions-ID, wenn keine andere angegeben ist. | LOG_LOCAL0
| Reserviert für lokale Verwendung. | LOG_LOCAL1
| Reserviert für lokale Verwendung. | LOG_LOCAL2
| Reserviert für lokale Verwendung. | LOG_LOCAL3
| Reserviert für lokale Verwendung. | LOG_LOCAL4
| Reserviert für lokale Verwendung. | LOG_LOCAL5
| Reserviert für lokale Verwendung. | LOG_LOCAL6
| Reserviert für lokale Verwendung. | LOG_LOCAL7
| Reserviert für lokale Verwendung. | openlog() setzt Prozessattribute, die nachfolgende Aufrufe von syslog() steuern. Das Argument ident ist eine Zeichenkette, die jeder Meldung vorangestellt wird. logopt ist ein Bitfeld, in dem Protokolloptionen angezeigt werden. Werte für logopt werden durch bitweises inklusives ODER aus beliebig vielen der folgenden Werte erzeugt. Folgendes sind aktuelle Werte für logopt:
LOG_PID
| Protokolliert die Prozess-ID mit jeder Meldung. Dies ist nützlich für die Identifizierung spezieller Prozesse. | LOG_CONS
| Gibt Meldungen auf der Systemkonsole aus, wenn sie nicht in die Protokolldatei (standardmäßig /var/adm/syslog) geschrieben werden können. Diese Option kann in Prozessen, die nicht über ein Steuerungsterminal verfügen, sicher verwendet werden, da syslog() vor dem Öffnen der Konsole einen Kindprozess erzeugt. | LOG_NDELAY
| Öffnet die Protokolldatei (standardmäßig /var/adm/syslog) bei Ausführung von openlog() . Normalerweise wird das Öffnen verzögert, bis die erste Meldung protokolliert wird. Diese Option ist für Programme nützlich, die bei der Zuordnung von Dateideskriptoren auf die Reihenfolge achten müssen. | LOG_ODELAY
| Verzögert das Öffnen, bis syslog() aufgerufen wird. | LOG_NOWAIT
| Wartet nicht auf Kindprozesse, die zum Protokollieren von Meldungen auf der Konsole aufgespaltet wurden. Diese Option sollte von Prozessen verwendet werden, die mit Hilfe von SIGCHLD eine Benachrichtigung über das Beenden eines Kindprozesses ausgeben, da syslog() andernfalls möglicherweise durch das Warten auf einen Kindprozess blockiert wird, dessen Endestatus bereits erreicht ist. | Das Argument facility codiert eine Standardfunktion, die allen Meldungen zugeordnet werden soll, die nicht über eine bereits codierte explizite Funktion verfügen. Die Voreinstellung für die Standardfunktion ist LOG_USER . Die Funktionen openlog() und syslog() können Dateideskriptoren zuordnen. Es ist nicht notwendig, openlog() vor syslog() aufzurufen. Die Funktion closelog() schließt alle offenen Dateideskriptoren, die durch vorhergehende Aufrufe von openlog() und syslog() zugeordnet wurden. setlogmask() setzt die Protokollprioritätsmaske für den aktuellen Prozess auf maskpri und gibt die vorherige Maske zurück. Wenn maskpri den Wert 0 hat, wird die aktuelle Protokollprioritätsmaske nicht geändert. Aufrufe von syslog() durch den aktuellen Prozess, deren Priorität nicht in maskpri angegeben ist, werden zurückgewiesen. Die Maske für eine bestimmte Priorität pri wird vom Makro LOG_MASK (pri) berechnet. Die Maske für alle Prioritäten bis zu toppri einschließlich werden im Makro LOG_UPTO (toppri) angegeben. Standardmäßig können alle Prioritäten protokolliert werden.
Symbolische Konstanten, die als Werte für logopt, facility, priority und maskpri verwendet werden können, sind in der Include-Datei syslog.h definiert. |