Skip to main content
Diese Dokumentation beschreibt, wie Sie Logging mit dem AppSignal for PHP-Paket konfigurieren.

Logging konfigurieren

🔐 Senden Sie keine personenbezogenen Daten (Personal Identifiable Information, PII) an AppSignal. Filtern Sie PII (z. B. Namen, E-Mail-Adressen) aus Logs und verwenden Sie stattdessen eine ID, einen Hash oder einen pseudonymisierten Bezeichner.

Für HIPAA-pflichtige Stellen finden Sie weitere Informationen zum Abschluss eines Business Associate Agreement (BAA) in unserer Business Add-Ons-Dokumentation.
Sie müssen keine Log-Quelle erstellen, um Logs aus der AppSignal for PHP-Integration zu senden. Eine “application”-Log-Quelle wird automatisch erstellt. Das AppSignal for PHP-Paket nutzt die Logging-Funktionen von OpenTelemetry, um Logs an AppSignal zu senden.

Laravel

Wenn Sie das Laravel-Framework verwenden, sendet das AppSignal for PHP-Paket Ihre Logs automatisch an AppSignal. Sie müssen Monolog nicht direkt konfigurieren.

Symfony

Wenn Sie das Symfony-Framework verwenden, ist die einfachste Möglichkeit, Logs an AppSignal zu senden, die Verwendung des MonologBundle. Installieren Sie das Monolog Auto-Instrumentation-Paket.
Shell
composer require open-telemetry/opentelemetry-logger-monolog
Fügen Sie eine Service-Definition für 'appsignal.monolog.handler' hinzu, die die Klasse Appsignal\Integrations\Monolog\Handler verwendet.
config/services.yaml
services:
  # ... other services

  appsignal.monolog.handler:
    class: Appsignal\Integrations\Monolog\Handler
    factory: ['Appsignal\Integrations\Monolog\Handler', "withLevel"]
    arguments: ["info"] # configure log level that will reach AppSignal
Fügen Sie appsignal.monolog.handler zum Monolog-Handler-Stack hinzu.
config/packages/monolog.yaml
monolog:
  handlers:
    # other handlers

    appsignal:
      type: service
      id: appsignal.monolog.handler
      channels: ["app", "event"] # configure which channels to send to AppSignal

Monolog

Monolog ist die beliebteste Logging-Bibliothek für PHP. Sie können Monolog direkt verwenden, um Logs an AppSignal zu senden. Installieren Sie das Monolog Auto-Instrumentation-Paket.
Shell
composer require open-telemetry/opentelemetry-logger-monolog
Fügen Sie dann Appsignal\Integrations\Monolog\Handler zum Handler-Stack von Monolog hinzu.
PHP
use Appsignal\Integrations\Monolog\Handler;
use Monolog\Logger;

$logger = new Logger('app');
$logger->pushHandler(Handler::withLevel('info'));

$logger->info('My log message');

Eigenständige Verwendung

Sie können Logs auch mit dem eigenständigen Logger senden, indem Sie die log-Hilfsmethode der Appsignal-Basisklasse verwenden. Diese Methode erfordert keine Konfiguration.
PHP
use Appsignal\Appsignal;
use Appsignal\Severity;

// Log a message
Appsignal::log(
	message: 'Log message line',
	severity: Severity::INFO,
	loggerName: 'my-app',
	attributes: [
		'customer_id' => $customer->id,
	],
);
Konfigurieren Sie Monolog mit dem OpenTelemetry-Handler, um Logs an AppSignal zu senden:
PHP
use Appsignal\Integrations\Monolog\Handler;
use Monolog\Logger;

// Create Monolog logger with the AppSignal handler
$logger = new Logger('app', [Handler::withLevel('info')]);

Logs senden

Monolog

Mit Monolog können Sie die Severity-Stufe Ihrer Logs definieren:
PHP
$logger->warning("Something's gone terribly wrong here");
$logger->info('User action completed successfully');
$logger->error('Database connection failed');

// using Laravel's Log facade
Log::warning("Something's gone terribly wrong here");
Log::info('User action completed successfully');
Log::error('Database connection failed');
Sie können benutzerdefinierte Attribute definieren, um Log-Informationen zu senden, die beim Filtern und Abfragen von Logs verwendet werden können:
PHP
$logger->info('Generating invoice for customer', ['customer_id' => $customer->id]);

// using Laravel's Log facade
Log::info('Generating invoice for customer', ['customer_id' => $customer->id]);

Eigenständiger Logger

Mit dem eigenständigen Logger können Sie die Severity-Stufe Ihrer Logs definieren:
PHP
use Appsignal\Appsignal;
use Appsignal\Severity;

// Different severity levels
Appsignal::log(
	message: "Something's gone terribly wrong here",
	severity: Severity::WARN,
);

Appsignal::log(
	message: 'User action completed successfully',
	severity: Severity::INFO,
);

Appsignal::log(
	message: 'Database connection failed',
	severity: Severity::ERROR,
);
Sie können benutzerdefinierte Attribute definieren, um Log-Informationen zu senden, die beim Filtern und Abfragen von Logs verwendet werden können:
PHP
use Appsignal\Appsignal;
use Appsignal\Severity;

function processInvoice($customer) {
	Appsignal::log(
		message: 'Generating invoice for customer',
		severity: Severity::INFO,
		attributes: ['customer_id' => $customer->id],
	);
}

Logs filtern

Sie können Nachrichteninhalte und Attributwerte aus dem Log-Management-Tool heraus abfragen und filtern. Nach der Konfiguration werden die gewünschten Attribute als Log-Tags an AppSignal gesendet und sind in der AppSignal Logging-Oberfläche abfragbar.

Strukturiertes Logging

AppSignal unterstützt strukturiertes Logging von Haus aus. Sie können strukturierte Daten als Log-Attribute senden:
PHP
use Appsignal\Appsignal;
use Appsignal\Severity;

Appsignal::log(
	message: 'User action completed',
	severity: Severity::INFO,
    attributes: [
		'user_id' => $userId,
		'action' => 'purchase',
		'product_id' => $productId,
		'amount' => $amount,
		'currency' => 'USD'
	],
);

// or using Monolog
$logger->info('Generating invoice for customer', ['customer_id' => $customer->id]);

// or using Laravel's Log facade
Log::info('Generating invoice for customer', ['customer_id' => $customer->id]);
Sie können AppSignal for PHP auch so konfigurieren, dass bestimmte Log-Zeilen ignoriert werden, indem Sie die Option ignore_logs verwenden. Lesen Sie unseren Leitfaden zum Ignorieren von Logs, um mehr zu erfahren.

Brauchen Sie Hilfe?

Nachdem Sie Ihre PHP-Anwendung so konfiguriert haben, dass sie Logs sendet, sollten die Logs in AppSignal erscheinen. Wenn Sie sich bei diesem Schritt unsicher sind oder AppSignal keine Logs empfängt, können Sie sich jederzeit für Unterstützung an uns wenden. Wir helfen Ihnen, wieder auf Kurs zu kommen!