05.11.2013 Aufrufe

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

44 2 Programmieren <strong>mit</strong> <strong>Unix</strong>-Prozessen<br />

Zentrale Konfiguration der Schwellwerte: Für alle systemweiten Protokolldateien<br />

kann ein Schwellwert definiert werden, der angibt, ab welchem Gewicht<br />

eine eintreffende Nachricht in die entsprechende Log-Datei aufgenommen<br />

werden soll.<br />

Kurz zusammengefaßt ermöglicht der Syslog-Dienst das einfache Protokollieren<br />

von Zustandsmeldungen <strong>und</strong> Fehlerausgaben. Anwendungsprogramme<br />

können jederzeit alle Meldungen an den Syslog-Dienst übertragen. Vom Systemadministrator<br />

kann dann – ohne Neustart oder gar Änderung der Applikation<br />

– anhand der Art der Anwendung oder der Priorität der Meldung eine<br />

Auswahl der tatsächlich zu protokollierenden Nachrichten getroffen werden.<br />

Die Programmierschnittstelle 6 des Syslog-Diensts bietet im wesentlichen die<br />

folgenden drei Funktionen zur vereinfachten Klassifizierung <strong>und</strong> Ausgabe von<br />

Nachrichten:<br />

#include<br />

<br />

void openlog( const char *ident, int logopt ,<br />

int facility );<br />

void syslog( int priority , const char *message , ... );<br />

void closelog( void );<br />

Die syslog()-Funktion gibt die aus dem Parameter message in Verbindung<br />

<strong>mit</strong> den nachfolgenden Argumenten formatierte Nachricht an den Syslog-<br />

Dienst weiter. Die Formatierung der Nachricht entspricht, bis auf eine kleine<br />

Ergänzung, dem Verfahren der printf()-Funktion. Neben den von printf()<br />

bekannten Umwandlungszeichen versteht syslog() noch die Zeichenfolge %m,<br />

durch welche der zu errno zugehörige Fehlertext eingesetzt wird. Gültige<br />

Werte für den Parameter priority erhält man durch Oder-Verknüpfung der<br />

in festgelegten Konstanten für die Priorität <strong>und</strong> (optional) die<br />

Kategorie der auszugebenden Meldung.<br />

Über die Funktion openlog() werden die Standards für alle im weiteren<br />

Verlauf der Anwendung erzeugten Nachrichten festgelegt. Die Zeichenkette<br />

ident wird dann in alle Nachrichten eingebettet, in aller Regel wird hier<br />

der Programmname des laufenden Programms hinterlegt. Über den Parameter<br />

logopt können zusätzliche Features ausgewählt werden. Die Angabe von<br />

LOG_PID bewirkt z. B., daß jede Meldung <strong>mit</strong> der Prozeßnummer (PID) des<br />

aktuellen Prozesses versehen wird. Die verschiedenen möglichen Werte für<br />

logopt werden ebenfalls in definiert. Mit closelog() wird die<br />

Ausgabe auf den Syslog-Dienst abgeschlossen.<br />

6 Die Programmierschnittstelle ist durch das X/Open System Interface, eine Erweiterung<br />

zu IEEE Std 1003.1-2001, definiert.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!