Skip to main content
Deze documentatie beschrijft hoe u logging configureert met het AppSignal for PHP-pakket.

Logging configureren

🔐 Stuur geen Persoonlijk Identificeerbare Informatie (PII) naar AppSignal. Filter PII (bijv. namen, e-mailadressen) uit logs en gebruik in plaats daarvan een ID, hash of gepseudonimiseerde identificator.

Voor onder HIPAA vallende entiteiten vindt u meer informatie over het ondertekenen van een Business Associate Agreement (BAA) in onze documentatie over Business Add-Ons.
U hoeft geen logbron aan te maken om logs te versturen vanuit de AppSignal for PHP-integratie. Er wordt automatisch een “application”-logbron aangemaakt. Het AppSignal for PHP-pakket gebruikt de logging-mogelijkheden van OpenTelemetry om logs naar AppSignal te sturen.

Laravel

Als u het Laravel-framework gebruikt, stuurt het AppSignal for PHP-pakket uw logs automatisch naar AppSignal. U hoeft Monolog niet rechtstreeks te configureren.

Symfony

Als u het Symfony-framework gebruikt, is de gemakkelijkste manier om logs naar AppSignal te sturen via de MonologBundle. Installeer het Monolog auto-instrumentation-pakket.
Shell
composer require open-telemetry/opentelemetry-logger-monolog
Voeg een servicedefinitie toe voor 'appsignal.monolog.handler' die de klasse Appsignal\Integrations\Monolog\Handler gebruikt.
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
Voeg appsignal.monolog.handler toe aan de Monolog handler-stack.
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 is de meest populaire logging-bibliotheek voor PHP. U kunt Monolog direct gebruiken om logs naar AppSignal te sturen. Installeer het Monolog auto-instrumentation-pakket.
Shell
composer require open-telemetry/opentelemetry-logger-monolog
Voeg vervolgens Appsignal\Integrations\Monolog\Handler toe aan de handler-stack van Monolog.
PHP
use Appsignal\Integrations\Monolog\Handler;
use Monolog\Logger;

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

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

Zelfstandig gebruik

U kunt ook logs versturen met de zelfstandige logger via de helper-methode log van de Appsignal-basisklasse. Deze methode vereist geen configuratie.
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,
	],
);
Configureer Monolog met de OpenTelemetry-handler om logs naar AppSignal te sturen:
PHP
use Appsignal\Integrations\Monolog\Handler;
use Monolog\Logger;

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

Logs versturen

Monolog

Met Monolog kunt u de severity-niveau van uw logs definiëren:
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');
U kunt aangepaste attributen definiëren om loginformatie te versturen die kan worden gebruikt bij het filteren en opvragen van logs:
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]);

Zelfstandige logger

Met de zelfstandige logger kunt u de severity-niveau van uw logs definiëren:
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,
);
U kunt aangepaste attributen definiëren om loginformatie te versturen die kan worden gebruikt bij het filteren en opvragen van logs:
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 filteren

U kunt op berichtinhoud en attribuutwaarden filteren en opvragen vanuit de Log Management-tool. Eenmaal geconfigureerd, worden de gewenste attributen als log-tags naar AppSignal verstuurd en zijn ze opvraagbaar in de AppSignal logging-interface.

Gestructureerde logging

AppSignal ondersteunt gestructureerde logging out of the box. U kunt gestructureerde data als log-attributen versturen:
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]);
U kunt AppSignal for PHP ook configureren om specifieke logregels te negeren met behulp van de optie ignore_logs. Zie onze gids Logs negeren voor meer informatie.

Hulp nodig?

Nadat u uw PHP-applicatie hebt geconfigureerd om logs te versturen, zouden er logs in AppSignal moeten verschijnen. Als u twijfelt over deze stap of AppSignal geen logs ontvangt, kunt u altijd contact opnemen voor hulp. Wij helpen u graag weer op weg!