Start · Sprachen · PHP · Referenz · swoole_error_log

swoole_error_log

Funktion

Schreibt eine Fehlermeldung mit dem angegebenen Log-Level in das Swoole-Fehlerprotokoll.

Kategorie: misc

Signatur

swoole_error_log(int $level, string $msg): void

Beschreibung

swoole_error_log() ist eine interne Swoole-Funktion, die es ermöglicht, Nachrichten direkt in das Swoole-eigene Logging-System zu schreiben. Sie wird vor allem in Swoole-Erweiterungen, eigenen Coroutinen oder asynchronen Servern eingesetzt, wenn man Log-Ausgaben in den gleichen Kanal wie Swoole-interne Meldungen leiten möchte.

Das Log-Level bestimmt, ob die Nachricht tatsächlich ausgegeben wird – abhängig vom konfigurierten Mindest-Log-Level von Swoole (gesetzt über swoole_set_process_name() bzw. die Serverkonfiguration log_level). Nachrichten unterhalb des konfigurierten Schwellwerts werden still verworfen.

Typische Log-Level-Konstanten sind: SWOOLE_LOG_DEBUG, SWOOLE_LOG_TRACE, SWOOLE_LOG_INFO, SWOOLE_LOG_NOTICE, SWOOLE_LOG_WARNING und SWOOLE_LOG_ERROR. Diese sind als Integer-Konstanten in der Swoole-Erweiterung definiert.

Die Funktion ist primär für den Einsatz innerhalb von Swoole-Server-Prozessen gedacht und eignet sich nicht als allgemeiner Ersatz für error_log() in klassischen PHP-Applikationen ohne Swoole-Kontext.

Parameter

Name Typ Default Beschreibung
$level Pflicht int Log-Level als Integer-Konstante, z. B. SWOOLE_LOG_ERROR, SWOOLE_LOG_WARNING, SWOOLE_LOG_INFO, SWOOLE_LOG_DEBUG. Bestimmt die Priorität der Meldung.
$msg Pflicht string Der Meldungstext, der ins Log geschrieben werden soll.

Rückgabewert

Typ
void
Beschreibung
Die Funktion gibt keinen Rückgabewert zurück.

Beispiele

Fehlermeldung in einem Swoole-HTTP-Server loggen

<?php
// Voraussetzung: Swoole-Erweiterung ist installiert und geladen

$server = new Swoole\HTTP\Server('0.0.0.0', 9501);

$server->set([
    'log_level' => SWOOLE_LOG_INFO,
    'log_file'  => '/var/log/swoole_server.log',
]);

$server->on('request', function ($request, $response) {
    // Anfragedetails als Info loggen
    swoole_error_log(SWOOLE_LOG_INFO, 'Neue Anfrage: ' . $request->server['request_uri']);

    // Fehlerfall simulieren
    if (empty($request->get['id'])) {
        swoole_error_log(SWOOLE_LOG_WARNING, 'Parameter "id" fehlt in der Anfrage.');
        $response->status(400);
        $response->end('Fehlender Parameter');
        return;
    }

    $response->end('Hallo, ID: ' . intval($request->get['id']));
});

$server->start();

Debug-Meldung im Coroutine-Kontext ausgeben

<?php
// Direktes Verwenden von swoole_error_log im Coroutine-Kontext

Swoole\Coroutine\run(function () {
    swoole_error_log(SWOOLE_LOG_DEBUG, 'Coroutine gestartet, Verarbeitung beginnt.');

    // Simulierter asynchroner Vorgang
    Swoole\Coroutine::sleep(0.1);

    swoole_error_log(SWOOLE_LOG_INFO, 'Coroutine-Verarbeitung abgeschlossen.');
});

// Wichtig · Fallstricke

Swoole-spezifisch: Diese Funktion steht nur zur Verfügung, wenn die Swoole-PHP-Erweiterung installiert und aktiv ist. In einer Standard-PHP-Umgebung ohne Swoole führt der Aufruf zu einem fatalen Fehler (Call to undefined function).

Log-Level-Filterung: Meldungen mit einem Level unterhalb des konfigurierten log_level des Servers werden intern verworfen und erscheinen nicht im Log. SWOOLE_LOG_DEBUG und SWOOLE_LOG_TRACE sollten im Produktivbetrieb deaktiviert werden, um die Performance nicht zu beeinträchtigen.

Kein Ersatz für PSR-3-Logger: Für komplexe Logging-Anforderungen (z. B. mit strukturierten Daten, mehreren Backends) sollte ein PSR-3-kompatibler Logger (z. B. Monolog) bevorzugt werden.