{"id":45267,"date":"2022-08-29T14:06:56","date_gmt":"2022-08-29T12:06:56","guid":{"rendered":"https:\/\/kinsta.com\/nl\/?p=45267&#038;preview=true&#038;preview_id=45267"},"modified":"2023-06-30T15:15:06","modified_gmt":"2023-06-30T13:15:06","slug":"laravel-logging","status":"publish","type":"post","link":"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/","title":{"rendered":"Laravel logging: alles wat je moet weten"},"content":{"rendered":"<p>Bij het ontwikkelen van een moderne toepassing moet logging bovenaan de prioriteitenlijst staan.<\/p>\n<p>Logging biedt een manier om je app zowel in ontwikkeling als in productie te visualiseren, wat transparantie en zichtbaarheid mogelijk maakt. Met goed gestructureerde logging kunnen moderne toepassingen gemakkelijker onderhouden worden, omdat we pro-actief points of failure en bottlenecks in de prestaties van onze app kunnen opsporen.<\/p>\n<p>Het Laravel framework wordt geleverd met een robuust loggingsysteem dat alle hindernissen die komen kijken bij het configureren van een goed gestructureerd loggingsysteem oplost. Dit nieuwe loggingsysteem dat in Laravel 6.5 ge\u00efntroduceerd wordt is krachtig, en we zullen het in dit artikel verkennen.<\/p>\n\n<p>Dit artikel zal de basisprincipes van Laravel logging verkennen en uitleggen waarom je Laravel logging in je volgende project zou moeten gebruiken. We zullen gestructureerd loggen en gecentraliseerd loggen uitgebreid bespreken. Bovendien zullen we leren hoe je Laravel logging kunt implementeren door een Todo toepassing te bouwen.<\/p>\n<p>Je zult meer uit dit artikel halen als je het volgende al onder de knie hebt:<\/p>\n<ul>\n<li>Goede kennis van webontwikkeling<\/li>\n<li><a href=\"https:\/\/kinsta.com\/nl\/blog\/wat-is-laravel\/\">Basiskennis van Laravel<\/a><\/li>\n<li>Apps bouwen met Laravel<\/li>\n<\/ul>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Wat is Laravel logging?<\/h2>\n<p>Laravel logging gaat over hoe Laravel logging, oftewel automatische probleemmelding, afhandelt met behulp van een viraal PHP logging systeem dat Monolog heet. Maar vanwege Laravel&#8217;s filosofie om populaire bestaande bibliotheken te gebruiken om verschillende frameworkfuncties uit te voeren, gebruikt Laravel Monolog voor al de loggingbehoeften.<\/p>\n<p><a href=\"https:\/\/seldaek.github.io\/monolog\/\" target=\"_blank\" rel=\"noopener noreferrer\">Monolog<\/a> is een zeer flexibele en populaire PHP loggingbibliotheek die we kunnen configureren om je logs naar bestanden, sockets, databases, en andere webdiensten te sturen. Monolog biedt een vertrouwde interface voor het schrijven van logs, van standaard tekstbestanden tot geavanceerde externe logbeheerdiensten. Laravel stelt Monolog typisch in om een standaard logging configuratiebestand te gebruiken.<\/p>\n<p>Voor meer informatie over Monolog en zijn mogelijkheden kun je de <a href=\"https:\/\/seldaek.github.io\/monolog\/\" target=\"_blank\" rel=\"noopener noreferrer\">offici\u00eble documentatie<\/a> raadplegen, want dat valt buiten het bereik van dit artikel.<\/p>\n<p>Voor we duiken in het configureren en implementeren van Laravel logging met Monolog, verkennen we eerst meer redenen om Laravel logging te gebruiken en de verschillende soorten.<\/p>\n<h2>Waarom Laravel logging gebruiken?<\/h2>\n<p>Waarom is logging nodig?<\/p>\n<p>Het <a href=\"https:\/\/12factor.net\/\" target=\"_blank\" rel=\"noopener noreferrer\">Twelve-Factor App<\/a> manifest behandelt logging als een van de belangrijkste aandachtspunten van een moderne toepassing, want logging is de sleutel tot prestaties en monitoring.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/nl\/docs\/wordpress-hosting\/wordpress-problemen-oplossen\/serverlogs-bekijken\/\">Logs<\/a> helpen bij het gedetailleerd begrijpen van fouten die in de productie optreden en waar ze vandaan komen. Met de juiste logstructuren kan bovendien de specifieke gebruiker getoond worden, de actie die de fout veroorzaakte, en de mogelijke oplossing voor snellere bug fix en onderhoud.<\/p>\n<p>Gestructureerde logging is een redder in nood in productie-applicaties door te helpen bij het opsporen van defecten en het oplossen van problemen in de productie. Bovendien kun je al je logberichten in real-time volgen en verzamelen met gespecialiseerde logging tools voor live analyse en rapportage.<\/p>\n<p>Om deze redenen moet je van gestructureerde logging een topprioriteit maken in je volgende moderne applicatieproject.<\/p>\n<p>Laten we eens kijken naar het overzicht van de verschillende loggingstijlen die beschikbaar zijn.<\/p>\n<h2>Grondbeginselen van Laravel logging<\/h2>\n<p>Het leren van de basisprincipes van logging helpt je te begrijpen hoe Laravel met logging omgaat en hoe je je gestructureerde loggingpraktijken kunt verbeteren.<\/p>\n<p>Laten we twee essenti\u00eble concepten in logging onderzoeken om beter te begrijpen hoe we onze loggingprocedures kunnen implementeren.<\/p>\n<h3>Gestructureerd loggen in Laravel<\/h3>\n<p>In softwareontwikkeling is gestructureerd loggen het implementeren van een vooraf bepaald en consistent berichtformat voor toepassingslogs. Met dit formaat kunnen de berichten behandeld worden als gegevens die veel beter gevolgd, gemanipuleerd en gevisualiseerd kunnen worden dan het gewone tekstformat.<\/p>\n<p>Je moet een gestructureerde loggingaanpak implementeren in je moderne applicatieontwikkeling omdat logbestanden essentieel zijn voor ontwikkelaars als er in productie iets verkeerds gebeurt met je applicatie.<\/p>\n<p>Omdat Laravel Monolog gebruikt, kunnen ontwikkelaars snel gestructureerd loggen implementeren door de logger te configureren om specifieke soorten informatie te ontvangen, de logbestanden in verschillende formaten op te slaan, en de logs naar verschillende externe logbeheerdiensten te sturen voor visualisatie.<\/p>\n<h3>Laravel gecentraliseerd loggen<\/h3>\n<p>Een gecentraliseerd logsysteem is een systeem waarbij logs vanuit meerdere bronnen naar Centralized Log Management (CLM) oplossingen worden gestuurd voor eenvoudige consolidatie en visualisatie. CLM is echter een gespecialiseerde loggeroplossing die logberichten uit verschillende bronnen verzamelt en de gegevens consolideert voor gemakkelijke verwerking en visualisatie.<\/p>\n<p>Behalve het verzamelen van gegevens wordt van CLM ook verwacht dat het de analyse van loggegevens ondersteunt en een duidelijke presentatie van de gegevens na analyse.<\/p>\n<h3>Gestructureerd loggen vs. basic loggen<\/h3>\n<p>Laten we eens kijken naar het verschil tussen gestructureerd loggen en basic (ongestructureerd) loggen en waarom je gestructureerd loggen in je Laravel project zou moeten gebruiken.<\/p>\n<h4>Basic loggen<\/h4>\n<p>Bij basic loggen worden de logbestanden in een onbewerkt format opgeslagen met beperkte gegevens om individuele logs op te vragen en te identificeren.<\/p>\n<p>Bij gebruik van Basic logging zullen <a href=\"https:\/\/kinsta.com\/nl\/\">ontwikkelaars<\/a> geen externe analysetools gebruiken om logs te lezen, bekijken en analyseren, tenzij ze een eigen tool ontwikkelen of het houden bij een tool die hun logformat ondersteunt.<\/p>\n<p>Er zijn drie belangrijke redenen om het gebruik van basic logging te vermijden:<\/p>\n<ol>\n<li>Gecentraliseerde logbeheersystemen kunnen niet met de gegevens werken zonder extra ondersteuning.<\/li>\n<li>Een aangepaste oplossing is nodig om de gegevens van een basic loggingsoplossing te lezen en te ontleden.<\/li>\n<li>Het kan voor beheerders een uitdaging zijn om bacic logginggegevens te lezen omdat ze ruw en ongestructureerd zijn.<\/li>\n<\/ol>\n<h4>Gestructureerd loggen<\/h4>\n<p>Gestructureerd loggen bespaart ontwikkelaars tijd door gebruik te maken van externe open-source loganalysetools die standaard log-structuur ondersteunen om logs te lezen, te bekijken en te analyseren.<\/p>\n<p>Logs zijn nuttig als ze de juiste gegevens bevatten die hieronder vermeld staan, en dat is wat gestructureerd loggen probeert. We kunnen de gegevens in gestructureerde logging gebruiken om dashboards, grafieken, diagrammen en andere nuttige visualisaties te maken om de gezondheid van de toepassing te bepalen.<\/p>\n<p>Dit zijn basisvoorbeelden van de informatie die we in gestructureerde logberichten kunnen opnemen. Bovendien kun je de gegevens helemaal aanpassen aan je eigen behoeften.<\/p>\n<p>Hier zijn enkele voorbeelden van de gegevens die je met gestructureerde logging kunt verzamelen:<\/p>\n<ol>\n<li>De poort die gebruikt werd om de functie uit te voeren<\/li>\n<li>De datum en tijd waarop de gebeurtenis plaatsvond<\/li>\n<li>De gebruikersnaam of ID van de klant<\/li>\n<li>Een beschrijving van de gebeurtenis (logbericht)<\/li>\n<li>Het protocol dat gebruikt werd om de functie uit te voeren<\/li>\n<li>De plaats van de getriggerde gebeurtenis (geef API of draaiende app aan)<\/li>\n<li>De unieke gebeurtenis-ID<\/li>\n<li>Het soort actie dat geactiveerd wordt (logniveau)<\/li>\n<\/ol>\n<p>Logs moeten voldoende gegevens bevatten om de oplossing of de reden voor de loggebeurtenis gemakkelijk te kunnen visualiseren. Merk ook op dat je niet alle soorten informatie, zoals wachtwoorden of gevoelige gegevens, in logs moet opslaan.<\/p>\n<p>Nu we een glimp opgevangen hebben van wat Laravel loggen inhoudt, gaan we verder met het implementeren van Laravel loggen door een toepassing te bouwen met loggen als belangrijke component.<\/p>\n<h2>Hoe Laravel logging implementeren met Todo App<\/h2>\n<p>Nu gaan we toepassen wat we tot nu toe geleerd hebben door een nieuw Laravel project te maken en Laravel logging te implementeren.<\/p>\n<p>Als je Laravel nog niet eerder gebruikt hebt, kun je doorlezen <a href=\"https:\/\/kinsta.com\/nl\/blog\/wat-is-laravel\/\">wat Laravel is<\/a> of een blik werpen op onze lijst van <a href=\"https:\/\/kinsta.com\/nl\/blog\/laravel-tutorial\/\">uitstekende Laravel handleidingen<\/a> om aan de slag te gaan.<\/p>\n<h3>Laravel opzetten<\/h3>\n<p>Eerst gaan we een verse Laravel instantie aanmaken met het onderstaande commando. Je kunt de <a href=\"https:\/\/laravel.com\/docs\/8.x\/installation\" target=\"_blank\" rel=\"noopener noreferrer\">offici\u00eble documentatie<\/a> raadplegen voor meer.<\/p>\n<p>Open je console en navigeer naar de plaats waar je je PHP projecten opslaat voordat je de onderstaande commando&#8217;s uitvoert. Zorg ervoor dat <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Composer<\/a> correct ge\u00efnstalleerd en geconfigureerd is.<\/p>\n<pre><code class=\"language-json\">composer create-project laravel\/laravel laravel-logging-app\ncd laravel-logging-app \/\/ Change directory to current Laravel installation\nphp artisan serve \/\/ Start Laravel development server<\/code><\/pre>\n<h3>De database configureren en seeden<\/h3>\n<p>Vervolgens richten we onze database in, maken een nieuw <code>Todo<\/code> model, en seeden 200 nepgegevens om te testen.<\/p>\n<p>Open je databaseprogramma en maak een nieuwe database aan. We doen hetzelfde met de naam <code>laravel_logging_app_db<\/code> en vullen dan ons <strong>.env<\/strong> bestand met de database-informatie:<\/p>\n<pre><code class=\"language-bash\">DB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=laravel_logging_app_db\nDB_USERNAME=\/\/DB USERNAME HERE\nDB_PASSWORD=\/\/DB PASSWORD HERE<\/code><\/pre>\n<p>Vervolgens voeren we het volgende commando uit om tegelijk de migratie en het <code>Todo<\/code> model te maken:<\/p>\n<pre><code class=\"language-bash\">php artisan make:model Todo -mc<\/code><\/pre>\n<p>Open de nieuw gemaakte migratie, die je kan vinden in <strong>database\/migrations\/xxx-create-todos-xxx.php<\/strong> en plak er de volgende codes in:<\/p>\n<pre><code class=\"language-php\">&lt;?php\nuse IlluminateSupportFacadesSchema;\nuse IlluminateDatabaseSchemaBlueprint;\nuse IlluminateDatabaseMigrationsMigration;\nclass CreateTodosTable extends Migration\n{\n  \/**\n  * Run the migrations.\n  *\n  * @return void\n  *\/\n  public function up()\n  {\n    Schema::create('todos', function (Blueprint $table) {\n      $table-&gt;id();\n      $table-&gt;string('title');\n      $table-&gt;text('description')-&gt;nullable();\n      $table-&gt;boolean('is_completed')-&gt;default(false);\n      $table-&gt;timestamps();\n    });\n  }\n  \/**\n  * Reverse the migrations.\n  *\n  * @return void\n  *\/\n  public function down()\n  {\n    Schema::dropIfExists('todos');\n  }\n}<\/code><\/pre>\n<p>Je kunt je todo&#8217;s seeden met Faker gegevens door te leren <a href=\"https:\/\/laravel.com\/docs\/8.x\/seeding\" target=\"_blank\" rel=\"noopener noreferrer\">je databases in Laravel te seeden<\/a> met Faker.<\/p>\n<h3>Overzicht van Monolog<\/h3>\n<p>Met Laravel Monolog kun je gestructureerde logs streamen en versturen naar verschillende kanalen, zoals e-mails, Slack, bestanden, sockets, inboxen, databases, en verschillende webdiensten. In Laravel kun je het loggen configureren vanuit een enkel configuratiebestand dat staat in <strong>config\/logging.php<\/strong>.<\/p>\n<p>Het configuratiebestand wordt geleverd met voorgedefinieerde log drivers om uit te kiezen, en de standaard driver is een <code>stack<\/code> die het <code>single<\/code> kanaal gebruikt om te loggen naar een <strong>laravel.log<\/strong> bestand dat in de map <strong>storage\/logs<\/strong> staat. We zullen gestructureerd loggen demonstreren door een paar van de <a href=\"https:\/\/laravel.com\/docs\/8.x\/logging#available-channel-drivers\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel log drivers<\/a> te gebruiken.<\/p>\n<p>Laravel biedt een handvol <a href=\"https:\/\/laravel.com\/docs\/8.x\/logging#writing-log-messages\" target=\"_blank\" rel=\"noopener noreferrer\">methoden<\/a> om met Logs te interageren, zoals binnenkort algemeen gedemonstreerd wordt in het <strong>TodosController.php<\/strong> controller bestand.<\/p>\n<h3>Logberichten schrijven in de controller<\/h3>\n<p>Open het pas gemaakte <strong>TodosController.php<\/strong> controller bestand dat je vindt <strong>app\/Http\/Controllers<\/strong> map en plak er de volgende codes in:<\/p>\n<pre><code class=\"language-php\">\n&lt;?php\nnamespace AppHttpControllers;\nuse AppModelsTodo;\nuse IlluminateHttpRequest;\nuse AppHttpControllersController;\nuse IlluminateSupportFacadesAuth;\nuse IlluminateSupportFacadesLog;\nclass TodosController extends Controller\n{\n  public function index(Request $request)\n  {\n    $todos = Todo::all();\n    Log::warning('User is accessing all the Todos', ['user' =&gt; Auth::user()-&gt;id]);\n    return view('dashboard')-&gt;with(['todos' =&gt; $todos]);\n  }\n  public function byUserId(Request $request)\n  {\n    $todos = Todo::where('user_id', Auth::user()-&gt;id)-&gt;get();\n    Log::info('User is accessing all his todos', ['user' =&gt; Auth::user()-&gt;id]);\n    return view('dashboard')-&gt;with(['todos' =&gt; $todos]);\n  }\n  public function show(Request $request, $id)\n  {\n    $todo = Todo::find($id);\n    Log::info('User is accessing a single todo', ['user' =&gt; Auth::user()-&gt;id, 'todo' =&gt; $todo-&gt;id]);\n    return view('show')-&gt;with(['todo' =&gt; $todo]);\n  }\n  public function update(Request $request, $id)\n  {\n    # Validations before updating\n    $todo = Todo::where('user_id', Auth::user()-&gt;id)-&gt;where('id', $id)-&gt;first();\n    Log::warning('Todo found for updating by user', ['user' =&gt; Auth::user()-&gt;id, 'todo' =&gt; $todo]);\n    if ($todo) {\n      $todo-&gt;title = $request-&gt;title;\n      $todo-&gt;desc = $request-&gt;desc;\n      $todo-&gt;status = $request-&gt;status == 'on' ? 1 : 0;\n      if ($todo-&gt;save()) {\n        Log::info('Todo updated by user successfully', ['user' =&gt; Auth::user()-&gt;id, 'todo' =&gt; $todo-&gt;id]);\n        return view('show', ['todo' =&gt; $todo]);\n      }\n      Log::warning('Todo could not be updated caused by invalid todo data', ['user' =&gt; Auth::user()-&gt;id, 'todo' =&gt; $todo-&gt;id, 'data' =&gt; $request-&gt;except('password')]);\n      return; \/\/ 422\n    }\n    Log::error('Todo not found by user', ['user' =&gt; Auth::user()-&gt;id, 'todo' =&gt; $id]);\n    return; \/\/ 401\n  }\n  public function store(Request $request)\n  {\n    Log::warning('User is trying to create a single todo', ['user' =&gt; Auth::user()-&gt;id, 'data' =&gt; $request-&gt;except('password')]);\n    # Validations before updating\n    $todo = new Todo;\n    $todo-&gt;title = $request-&gt;title;\n    $todo-&gt;desc = $request-&gt;desc;\n    $todo-&gt;user_id = Auth::user()-&gt;id;\n    if ($todo-&gt;save()) {\n      Log::info('User create a single todo successfully', ['user' =&gt; Auth::user()-&gt;id, 'todo' =&gt; $todo-&gt;id]);\n      return view('show', ['todo' =&gt; $todo]);\n    }\n    Log::warning('Todo could not be created caused by invalid todo data', ['user' =&gt; Auth::user()-&gt;id, 'data' =&gt; $request-&gt;except('password')]);\n    return; \/\/ 422\n  }\n  public function delete(Request $request, $id)\n  {\n    Log::warning('User is trying to delete a single todo', ['user' =&gt; Auth::user()-&gt;id, 'todo' =&gt; $id]);\n    $todo = Todo::where('user_id', Auth::user()-&gt;id)-&gt;where('id', $id)-&gt;first();\n    if ($todo) {\n      Log::info('User deleted a single todo successfully', ['user' =&gt; Auth::user()-&gt;id, 'todo' =&gt; $id]);\n      $todo-&gt;delete();\n      return view('index');\n    }\n    Log::error('Todo not found by user for deleting', ['user' =&gt; Auth::user()-&gt;id, 'todo' =&gt; $id]);\n    return; \/\/ 404\n  }\n}<\/code><\/pre>\n<p>Binnen elk van de methoden in de <code>TodoController<\/code>, voegden we de gevel <code>Log<\/code> toe met een bepaald logniveau om het soort fout te bepalen dat we willen zenden. Hieronder zie je een voorbeeld van het gebruik van de<\/p>\n<p>Log fa\u00e7ade in de <code>store<\/code> methode.<\/p>\n<pre><code class=\"language-php\">public function store(Request $request)\n{\n  Log::warning('User is trying to create a single todo', ['user' =&gt; Auth::user()-&gt;id, 'data' =&gt; $request-&gt;except('password')]);\n  # Validations before updating\n  $todo = new Todo;\n  $todo-&gt;title = $request-&gt;title;\n  $todo-&gt;desc = $request-&gt;desc;\n  $todo-&gt;user_id = Auth::user()-&gt;id;\n  if ($todo-&gt;save()) {\n    Log::info('User create a single todo successfully', ['user' =&gt; Auth::user()-&gt;id, 'todo' =&gt; $todo-&gt;id]);\n    return view('show', ['todo' =&gt; $todo]);\n  }\n  Log::warning('Todo could not be created caused by invalid todo data', ['user' =&gt; Auth::user()-&gt;id, 'data' =&gt; $request-&gt;except('password')]);\n  return; \/\/ 422\n}<\/code><\/pre>\n<h3>Logmeldingen opmaken<\/h3>\n<p>Stel dat je je niet op je gemak voelt met de standaard <code>LineFormatter<\/code> die Laravel gebruikt, die prima werk levert met leesbare en behulpzame berichten.<\/p>\n<p>In dat geval kun je gemakkelijk een aangepast formatter object spinnen dat bij je gebruik past en het door de hele toepassing gebruiken.<\/p>\n<p>De offici\u00eble Monolog documentatie geeft een complete lijst van <a href=\"https:\/\/github.com\/Seldaek\/monolog\/blob\/main\/doc\/02-handlers-formatters-processors.md#formatters\" target=\"_blank\" rel=\"noopener noreferrer\">beschikbare formatters<\/a> en je kunt er gemakkelijk een custom mee maken.<\/p>\n<p>In Laravel kun je eenvoudig instellen dat een van de stuurprogramma&#8217;s je aangepaste formatter gebruikt door het toe te voegen aan de lijst zoals hieronder binnen het configuratiebestand dat staat in <strong>config\/logging.php<\/strong>:<\/p>\n<pre><code class=\"language-php\">'daily' =&gt; [\n  'driver' =&gt; 'daily',\n  'path' =&gt; storage_path('logs\/laravel.log'),\n  'level' =&gt; env('LOG_LEVEL', 'debug'),\n  'days' =&gt; 14,\n  'formatter' =&gt; MonologFormatterHtmlFormatter::class,\n  'formatter_with' =&gt; [\n    'dateFormat' =&gt; 'Y-m-d',\n  ]\n],<\/code><\/pre>\n<p>Het voorbeeld hierboven voegt een aangepaste <code>MonologFormatterHtmlFormatter<\/code> toe aan de <code>daily<\/code> driver die de <code>formatter<\/code> en <code>formatter_with<\/code> sleutel gebruikt in de <code>daily<\/code> kanaal configuratie om het formaat van de datums te veranderen.<\/p>\n<h3>Logs naar verschillende kanalen zenden<\/h3>\n<p>Met de hulp van Monolog kan Laravel logs naar verschillende kanalen sturen en naar meerdere kanalen tegelijk.<\/p>\n<p>Laten we demonstreren hoe we logs naar ons Slack kanaal kunnen sturen volgens deze eenvoudige stappen. Verander het standaard logkanaal in Slack en voeg <a href=\"https:\/\/api.slack.com\/messaging\/webhooks\" target=\"_blank\" rel=\"noopener noreferrer\">Slack Webhook<\/a> URL toe in je <strong>.env<\/strong> bestand <strong>.<\/strong><\/p>\n<pre><code class=\"markdown\">LOG_CHANNEL=slack\nLOG_SLACK_WEBBHOOK_URL= Slack_webhook_url_here<\/code><\/pre>\n<p>Test vervolgens je configuratie door een bericht in je toepassing te loggen met de <code>Log<\/code> fa\u00e7ade zoals hieronder:<\/p>\n<pre><code class=\"markdown\">Log::debug(\"The API instance is on fire caused by:\", ['user' =&gt; 1])<\/code><\/pre>\n<p>Je kunt je Slack kanaal openen om te controleren of de fout is afgedrukt in het gewenste kanaal dat je bij het genereren van de Webhook URL hebt opgegeven.<\/p>\n<h2>Samenvatting<\/h2>\n<p>Loggen is net zo belangrijk als elke ander onderdeel van je applicatie, zo niet nog belangrijker. Daarom wordt het door het Twelve-Factors App manifest voorgesteld als een van de meest kritische aandachtspunten van elke moderne toepassing.<\/p>\n<p>Met effectieve logging kun je fouten en gebreken die in je productieklare applicatie optreden gemakkelijk aflezen, bekijken en visualiseren. Daartoe is het belangrijk dat je vanaf het begin van het project gestructureerde logging in je toepassing implementeert.<\/p>\n\n<p>In dit artikel hebben we Laravel logging verkend en waarom je het in je volgende project zou moeten gebruiken. We bespraken zowel gestructureerd loggen als gecentraliseerd loggen in detail. Bovendien leerden we hoe je Laravel logging kunt implementeren door een Todo toepassing te bouwen.<\/p>\n<p>Hoe ben jij van plan logging in je volgende app te implementeren? Laat het ons weten in de commentaar sectie.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bij het ontwikkelen van een moderne toepassing moet logging bovenaan de prioriteitenlijst staan. Logging biedt een manier om je app zowel in ontwikkeling als in productie &#8230;<\/p>\n","protected":false},"author":193,"featured_media":45268,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[368,681,225,267,32],"topic":[866,864],"class_list":["post-45267","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-laravel","tag-logging","tag-monitoring","tag-performance","tag-php","topic-laravel","topic-php-frameworks"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Laravel logging: alles wat je moet weten - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Logging is essentieel voor het monitoren van de gezondheid en effectiviteit van je ontwikkelingsprojecten. Leer hoe je gestructureerd loggen toepast in Laravel.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Laravel logging: alles wat je moet weten\" \/>\n<meta property=\"og:description\" content=\"Logging is essentieel voor het monitoren van de gezondheid en effectiviteit van je ontwikkelingsprojecten. Leer hoe je gestructureerd loggen toepast in Laravel.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-29T12:06:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-30T13:15:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/08\/laravel-logging.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Solomon Eseme\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Logging is essentieel voor het monitoren van de gezondheid en effectiviteit van je ontwikkelingsprojecten. Leer hoe je gestructureerd loggen toepast in Laravel.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/08\/laravel-logging.png\" \/>\n<meta name=\"twitter:creator\" content=\"@kaperskyguru\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Solomon Eseme\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/\"},\"author\":{\"name\":\"Solomon Eseme\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2\"},\"headline\":\"Laravel logging: alles wat je moet weten\",\"datePublished\":\"2022-08-29T12:06:56+00:00\",\"dateModified\":\"2023-06-30T13:15:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/\"},\"wordCount\":1956,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/08\/laravel-logging.png\",\"keywords\":[\"laravel\",\"logging\",\"monitoring\",\"performance\",\"php\"],\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/\",\"url\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/\",\"name\":\"Laravel logging: alles wat je moet weten - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/08\/laravel-logging.png\",\"datePublished\":\"2022-08-29T12:06:56+00:00\",\"dateModified\":\"2023-06-30T13:15:06+00:00\",\"description\":\"Logging is essentieel voor het monitoren van de gezondheid en effectiviteit van je ontwikkelingsprojecten. Leer hoe je gestructureerd loggen toepast in Laravel.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/08\/laravel-logging.png\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/08\/laravel-logging.png\",\"width\":1460,\"height\":730,\"caption\":\"Laravel logging: alles wat je moet weten\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/nl\/onderwerpen\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Laravel logging: alles wat je moet weten\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/nl\/#website\",\"url\":\"https:\/\/kinsta.com\/nl\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Snelle, veilige, premium hostingoplossingen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/nl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/nl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\",\"https:\/\/x.com\/Kinsta_NL\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2\",\"name\":\"Solomon Eseme\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g\",\"caption\":\"Solomon Eseme\"},\"description\":\"I am a Software Engineer and Content Creator who is geared toward building high-performing and innovative products following best practices and industry standards. I also love writing about it at Masteringbackend.com. Follow me on Twitter, LinkedIn, and About Me\",\"sameAs\":[\"https:\/\/masteringbackend.com\",\"https:\/\/linkedin.com\/in\/solomoneseme\",\"https:\/\/x.com\/kaperskyguru\"],\"url\":\"https:\/\/kinsta.com\/nl\/blog\/author\/solomoneseme\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Laravel logging: alles wat je moet weten - Kinsta\u00ae","description":"Logging is essentieel voor het monitoren van de gezondheid en effectiviteit van je ontwikkelingsprojecten. Leer hoe je gestructureerd loggen toepast in Laravel.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/","og_locale":"nl_NL","og_type":"article","og_title":"Laravel logging: alles wat je moet weten","og_description":"Logging is essentieel voor het monitoren van de gezondheid en effectiviteit van je ontwikkelingsprojecten. Leer hoe je gestructureerd loggen toepast in Laravel.","og_url":"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","article_published_time":"2022-08-29T12:06:56+00:00","article_modified_time":"2023-06-30T13:15:06+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/08\/laravel-logging.png","type":"image\/png"}],"author":"Solomon Eseme","twitter_card":"summary_large_image","twitter_description":"Logging is essentieel voor het monitoren van de gezondheid en effectiviteit van je ontwikkelingsprojecten. Leer hoe je gestructureerd loggen toepast in Laravel.","twitter_image":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/08\/laravel-logging.png","twitter_creator":"@kaperskyguru","twitter_site":"@Kinsta_NL","twitter_misc":{"Geschreven door":"Solomon Eseme","Geschatte leestijd":"11 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/"},"author":{"name":"Solomon Eseme","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2"},"headline":"Laravel logging: alles wat je moet weten","datePublished":"2022-08-29T12:06:56+00:00","dateModified":"2023-06-30T13:15:06+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/"},"wordCount":1956,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/08\/laravel-logging.png","keywords":["laravel","logging","monitoring","performance","php"],"inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/","url":"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/","name":"Laravel logging: alles wat je moet weten - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/08\/laravel-logging.png","datePublished":"2022-08-29T12:06:56+00:00","dateModified":"2023-06-30T13:15:06+00:00","description":"Logging is essentieel voor het monitoren van de gezondheid en effectiviteit van je ontwikkelingsprojecten. Leer hoe je gestructureerd loggen toepast in Laravel.","breadcrumb":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#primaryimage","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/08\/laravel-logging.png","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2022\/08\/laravel-logging.png","width":1460,"height":730,"caption":"Laravel logging: alles wat je moet weten"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-logging\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/nl\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/nl\/onderwerpen\/laravel\/"},{"@type":"ListItem","position":3,"name":"Laravel logging: alles wat je moet weten"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/nl\/#website","url":"https:\/\/kinsta.com\/nl\/","name":"Kinsta\u00ae","description":"Snelle, veilige, premium hostingoplossingen","publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/nl\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/nl\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","https:\/\/x.com\/Kinsta_NL","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2","name":"Solomon Eseme","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g","caption":"Solomon Eseme"},"description":"I am a Software Engineer and Content Creator who is geared toward building high-performing and innovative products following best practices and industry standards. I also love writing about it at Masteringbackend.com. Follow me on Twitter, LinkedIn, and About Me","sameAs":["https:\/\/masteringbackend.com","https:\/\/linkedin.com\/in\/solomoneseme","https:\/\/x.com\/kaperskyguru"],"url":"https:\/\/kinsta.com\/nl\/blog\/author\/solomoneseme\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/45267","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/users\/193"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/comments?post=45267"}],"version-history":[{"count":5,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/45267\/revisions"}],"predecessor-version":[{"id":46561,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/45267\/revisions\/46561"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/45267\/translations\/en"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/45267\/translations\/jp"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/45267\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/45267\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/45267\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/45267\/translations\/de"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/45267\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/45267\/translations\/es"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/45267\/translations\/dk"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/45267\/translations\/se"},{"href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/45267\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media\/45268"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media?parent=45267"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/tags?post=45267"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/topic?post=45267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}