Symfony toont fouten in de profiler en schrijft ze naar var/log. In productie wil je ze ergens hebben waar je ze ook echt ziet, gegroepeerd en met de request erbij. De officiële Sentry-bundle werkt zonder aanpassingen met errors.nl.
1. Maak een project aan
Log in bij errors.nl, maak een organisatie en een project aan en kopieer de DSN. Die ziet eruit als https://<sleutel>@ingest.errors.nl/<project>.
2. Installeer de bundle
composer require sentry/sentry-symfony
De Flex-recipe registreert de bundle, maakt config/packages/sentry.yaml aan en zet SENTRY_DSN in je .env. Zet de echte DSN in .env.local of in de omgevingsvariabelen van je server, niet in git:
SENTRY_DSN=https://<sleutel>@ingest.errors.nl/<project>
3. Configureer per omgeving
De recipe zet de configuratie onder when@prod, zodat je lokaal en in tests niets verstuurt. Een goede basis:
when@prod: sentry: dsn: '%env(SENTRY_DSN)%' options: environment: '%kernel.environment%' release: '%env(default::SENTRY_RELEASE)%' send_default_pii: false tracing: enabled: false
errors.nl doet niets met performance-data. Met tracing uit stuurt de bundle die ook niet mee, en scheelt dat je app wat werk.
4. Test het
Maak tijdelijk een route die een exception gooit en roep hem aan in je productie- of stagingomgeving:
#[Route('/_fout-test')] public function test(): Response { throw new \RuntimeException('Testfout voor errors.nl'); }
Binnen een paar seconden staat hij onder Issues, met de route, de controller en de stacktrace.
5. Releases
Zet bij elke deploy SENTRY_RELEASE, bijvoorbeeld op de git-commit. Dan zie je bij welke release een fout begon, en zet errors.nl een opgeloste fout terug op open als hij in een nieuwe release weer opduikt.
SENTRY_RELEASE=webshop@$(git rev-parse --short HEAD)
6. Messenger en commands
De bundle vangt ook fouten in console-commands en Messenger-workers af. Gebruik je Monolog en wil je dat $logger->error() ook in errors.nl komt, koppel dan de Sentry-handler van de bundle in monolog.yaml. Let op: elke opgeslagen fout kost een credit, dus stuur alleen niveau error en hoger.
7. Persoonsgegevens
Met send_default_pii: false stuurt de bundle geen IP-adressen, cookies of de ingelogde gebruiker mee. Wil je wel weten welke gebruiker een fout zag, geef dan alleen een id mee en geen naam of e-mailadres.
errors.nl filtert daarnaast wachtwoorden, tokens, e-mailadressen en rekeningnummers uit elke fout voordat we die opslaan. Meer daarover lees je in Foutmonitoring en de AVG.
Meldingen
Wil je weten wanneer er iets misgaat zonder het dashboard open te hebben? Zet bij je project een melding per e-mail aan, of koppel Slack, Teams, Discord of ntfy voor pushmeldingen op je telefoon.