PHP 8.4.1 Released!

openlog

(PHP 4, PHP 5, PHP 7, PHP 8)

openlogStellt eine Verbindung zum Log-Dienst des Systems her

Beschreibung

openlog(string $prefix, int $flags, int $facility): true

Die Funktion openlog() öffnet eine Verbindung zum System-Log-Dienst eines Programmes.

Die Verwendung von openlog() ist optional. Die Funktion wird - falls erforderlich - automatisch von syslog() aufgerufen, dabei wird prefix standardmäßig mit false belegt.

Parameter-Liste

prefix

Die Zeichenkette prefix wird jeder Meldung hinzugefügt.

flags

Der Parameter flags wird verwendet, um anzuzeigen, welche Logging-Optionen bei der Generierung einer Log-Meldung verwendet wurden.

openlog()-Optionen
Konstante Beschreibung
LOG_CONS Tritt ein Fehler auf, während Daten an den Systemlogger gesendet werden, leite die Ausgabe direkt an die Konsole um.
LOG_NDELAY Öffnet die Verbindung zum Log-Dienst sofort.
LOG_ODELAY (Standardwert); öffnet die Verbindung erst, wenn die erste Meldung geloggt werden soll.
LOG_PERROR Schreibt den Log-Eintrag auch in das Standard-Error-Device
LOG_PID Fügt die PID an jede Meldung an
Sie können eine oder mehrere dieser Optionen verwenden. Benutzen Sie mehrere, müssen diese per OR getrennt werden. Um zum Beispiel die Verbindung sofort herzustellen, auf die Konsole zu schreiben und zugleich die PID in jede Meldung aufzunehmen, müssen Sie folgendes angeben: LOG_CONS | LOG_NDELAY | LOG_PID.

facility

Das Argument facility wird verwendet, um die Art des Programmes festzulegen, das die Nachricht loggt. Dies erlaubt Ihnen (in Ihrer speziellen SysLog-Konfiguration) die Festlegung der Behandlungsweise von Log-Meldungen.

openlog()-Möglichkeiten
Konstante Beschreibung
LOG_AUTH Sicherheits-/Authorisierungsmeldungen (benutzt statt dessen LOG_AUTHPRIV auf Systemen, wo diese Konstante definiert ist).
LOG_AUTHPRIV Sicherheits-/Authorisierungsmeldungen (private).
LOG_CRON Zeitabhängig gestartete Dienste (cron und at).
LOG_DAEMON Andere Systemdienste.
LOG_KERN Kernel-Meldungen
LOG_LOCAL0 ... LOG_LOCAL7 Reserviert für lokale Benutzung. Diese Konstanten stehen unter Windows nicht zur Verfügung.
LOG_LPR Zeilendrucker-Subsystem.
LOG_MAIL Mailing-Subsystem.
LOG_NEWS USENET-News-Subsystem.
LOG_SYSLOG Meldungen die intern von syslogd erzeugt wurden.
LOG_USER Generische User-Level-Meldungen.
LOG_UUCP UUCP-Subsystem

Hinweis:

LOG_USER ist der einzige unter Windows-Betriebssystemen gültige Logtyp.

Rückgabewerte

Gibt immer true zurück.

Changelog

Version Beschreibung
8.2.0 Die Funktion gibt nun immer true zurück; zuvor gab sie bei einem Fehler false zurück.

Siehe auch

  • syslog() - Erzeugt eine Meldung für das System-Log
  • closelog() - Schließt die Verbindung zum System-Logger

add a note

User Contributed Notes 1 note

up
1
Nimja
11 years ago
To those curious; switching between different facilities is NOT an issue. There is no apparent memory overhead (nor slowdown) by calling openlog multiple(12 * 10000) times.

Shown by this example:

<?php
$facilities
= array(
LOG_AUTH,
LOG_AUTHPRIV,
LOG_CRON,
LOG_DAEMON,
LOG_KERN,
LOG_LOCAL0,
LOG_LPR,
LOG_MAIL,
LOG_NEWS,
LOG_SYSLOG,
LOG_USER,
LOG_UUCP,
);

for (
$i = 0; $i < 10000; $i++) {
foreach (
$facilities as $facility) {
openlog('test', LOG_PID, $facility);
syslog(LOG_ERR, "This is a test: " . memory_get_usage(true));
}
}
?>
To Top