{"id":59449,"date":"2022-08-29T13:05:39","date_gmt":"2022-08-29T12:05:39","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=59449&#038;preview=true&#038;preview_id=59449"},"modified":"2023-02-01T15:12:01","modified_gmt":"2023-02-01T14:12:01","slug":"registri-laravel","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/","title":{"rendered":"Registri di Laravel: Tutto Quello Che Devi Sapere"},"content":{"rendered":"<p>Quando si sviluppa un&#8217;applicazione moderna, la registrazione (o logging) dovrebbe essere in cima alla lista delle priorit\u00e0.<\/p>\n<p>Il logging fornisce un modo per visualizzare la vostra applicazione sia in fase di sviluppo che di produzione, consentendo trasparenza e visibilit\u00e0. Grazie a una corretta strutturazione dei registri, le applicazioni moderne possono diventare pi\u00f9 facili da mantenere, in quanto possiamo identificare in modo proattivo i punti di guasto e i colli di bottiglia delle prestazioni della nostra applicazione.<\/p>\n<p>Il framework Laravel \u00e8 dotato di un robusto sistema di registrazione che gestisce tutti gli ostacoli legati alla configurazione di un sistema di logging correttamente strutturato. Il nuovo sistema di registrazione introdotto in Laravel 6.5 \u00e8 molto potente e lo esploreremo in questo articolo.<\/p>\n\n<p>In questo articolo analizziamo le basi del logging di Laravel e i motivi per cui dovreste usarlo nel vostro prossimo progetto. Parleremo in dettaglio del logging strutturato e del logging centralizzato. Inoltre, impareremo come implementare il logging in Laravel costruendo un&#8217;applicazione Todo.<\/p>\n<p>Potrete trarre maggiori benefici da questo articolo se avete gi\u00e0 acquisito le seguenti nozioni:<\/p>\n<ul>\n<li>Buona conoscenza dello sviluppo web<\/li>\n<li><a href=\"https:\/\/kinsta.com\/it\/blog\/framework-laravel\/\">Conoscenza di base di Laravel<\/a><\/li>\n<li>Come costruire applicazioni con 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>Cos&#8217;\u00c8 il Logging di Laravel?<\/h2>\n<p>Il logging di Laravel riguarda il modo in cui Laravel gestisce la registrazione, ovvero la segnalazione automatica dei problemi, utilizzando un sistema di registrazione PHP virale chiamato Monolog. Tuttavia, grazie alla filosofia di Laravel di usare le librerie esistenti pi\u00f9 diffuse per implementare le diverse funzionalit\u00e0 del framework, Laravel impiega Monolog per tutte le sue esigenze di logging.<\/p>\n<p><a href=\"https:\/\/seldaek.github.io\/monolog\/\" target=\"_blank\" rel=\"noopener noreferrer\">Monolog<\/a> \u00e8 una libreria di registrazione PHP molto flessibile e popolare che possiamo configurare per inviare i log a file, socket, database e altri servizi web. Monolog fornisce un&#8217;interfaccia familiare per scrivere log da file di testo standard a servizi avanzati di gestione dei log di terze parti. Laravel di solito imposta Monolog in modo da utilizzare un file di configurazione di log standard.<\/p>\n<p>Per maggiori informazioni su Monolog e le sue caratteristiche, <a href=\"https:\/\/seldaek.github.io\/monolog\/\" target=\"_blank\" rel=\"noopener noreferrer\">consultate la documentazione ufficiale<\/a>, poich\u00e9 va oltre lo scopo di questo articolo.<\/p>\n<p>Prima di immergerci nella configurazione e nell&#8217;implementazione dei registri di Laravel con Monolog, vediamo i motivi per cui usare i log di Laravel e le sue diverse tipologie.<\/p>\n<h2>Perch\u00e9 Usare i Registri di Laravel?<\/h2>\n<p>Perch\u00e9 i registri sono necessari?<\/p>\n<p>Il manifesto della <a href=\"https:\/\/12factor.net\/\" target=\"_blank\" rel=\"noopener noreferrer\">Twelve-Factor App<\/a> considera il logging come uno dei punti critici di un&#8217;applicazione moderna, in quanto \u00e8 fondamentale per le prestazioni e il monitoraggio.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/wordpress-risoluzione-problemi\/visualizzazione-server-log\/\">I registri<\/a> aiutano a comprendere nel dettaglio gli errori che si verificano in produzione e la loro origine. Inoltre, con una struttura di registrazione adeguata, possono mostrare l&#8217;utente specifico, l&#8217;azione che ha causato l&#8217;errore e la possibile soluzione per una pi\u00f9 rapida correzione dei bug e per la manutenzione.<\/p>\n<p>I registri strutturati sono un salvavita nelle applicazioni di produzione perch\u00e9 aiutano a risolvere i difetti e a risolvere i problemi in produzione. Inoltre, potete monitorare e raccogliere tutti i messaggi di log in tempo reale usando strumenti di log specializzati per l&#8217;analisi e la reportistica in tempo reale.<\/p>\n<p>Per questi motivi, dovete fare del logging strutturato una priorit\u00e0 assoluta nel vostro prossimo progetto di applicazione moderna.<\/p>\n<p>Vediamo una panoramica dei diversi stili di log disponibili.<\/p>\n<h2>Le Basi del Logging in Laravel<\/h2>\n<p>Imparare le basi del logging vi aiuter\u00e0 a capire come Laravel gestisce la registrazione e come potete migliorare le vostre pratiche di logging strutturato.<\/p>\n<p>Esaminiamo due concetti essenziali del logging per capire meglio come implementare le nostre procedure di logging.<\/p>\n<h3>Logging Strutturato in Laravel<\/h3>\n<p>Nello sviluppo del software, il logging strutturato consiste nell&#8217;implementare un formato di messaggio predeterminato e coerente per i log delle applicazioni. Questo formato permette di trattare i messaggi come dati che possono essere monitorati, manipolati e visualizzati molto meglio del normale formato di testo.<\/p>\n<p>\u00c8 necessario implementare un approccio strutturato ai log nello sviluppo di un&#8217;applicazione moderna perch\u00e9 i file di log sono un patrimonio essenziale per gli sviluppatori quando accade qualcosa di sbagliato all&#8217;applicazione in produzione.<\/p>\n<p>Dal momento che Laravel usa Monolog, potete implementare rapidamente un logging strutturato configurando il logger per ricevere specifici tipi di informazioni, memorizzando i file di log in diversi formati e inviando i log a vari servizi di gestione dei log di terze parti per la visualizzazione.<\/p>\n<h3>Logging Centralizzato di Laravel<\/h3>\n<p>Un sistema di logging centralizzato prevede l&#8217;invio dei log da pi\u00f9 fonti a soluzioni di Centralized Log Management (CLM) per facilitarne il consolidamento e la visualizzazione. Tuttavia, il CLM \u00e8 una soluzione di logger specializzata che raccoglie i messaggi di log da diverse fonti e consolida i dati per facilitarne l&#8217;elaborazione e la visualizzazione.<\/p>\n<p>Oltre alla raccolta dei dati, il CLM deve anche supportare l&#8217;analisi dei dati di log e una chiara presentazione dei dati dopo l&#8217;analisi.<\/p>\n<h3>Logging Strutturato vs. Logging di Base<\/h3>\n<p>Esaminiamo la differenza tra il logging strutturato e il logging di base (non strutturato) e perch\u00e9 dovreste usare il logging strutturato nel vostro progetto Laravel.<\/p>\n<h4>Logging di Base<\/h4>\n<p>Nel logging di base, i file di log sono archiviati in un formato grezzo con dati limitati per interrogare e identificare i singoli log.<\/p>\n<p>Quando usano il logging di base, <a href=\"https:\/\/kinsta.com\/it\/\">gli sviluppatori<\/a> non potranno servirsi di strumenti analitici di terze parti per leggere, visualizzare e analizzare i log, a meno che non sviluppino uno strumento personalizzato o utilizzino uno strumento limitato che supporti il formato dei log.<\/p>\n<p>Ci sono tre grandi ragioni per evitare di usare il logging di base:<\/p>\n<ol>\n<li>I sistemi di gestione dei log centralizzati non possono lavorare con i dati senza un supporto aggiuntivo.<\/li>\n<li>Per leggere e analizzare i dati di una soluzione di log di base \u00e8 necessaria una soluzione personalizzata.<\/li>\n<li>Per gli amministratori pu\u00f2 essere difficile leggere i dati di log di base perch\u00e9 sono grezzi e non strutturati.<\/li>\n<\/ol>\n<h4>Logging Strutturato<\/h4>\n<p>Il logging strutturato fa risparmiare tempo agli sviluppatori grazie all&#8217;utilizzo di strumenti di analisi dei log di terze parti open-source che supportano la struttura standard dei log per leggere, visualizzare e analizzare i log.<\/p>\n<p>I log sono utili se contengono i dati corretti elencati di seguito, ed \u00e8 questo l&#8217;obiettivo del logging strutturato. Possiamo usare i dati inclusi nel log strutturato per creare dashboard, grafici, diagrammi e qualsiasi altra visualizzazione utile per determinare lo stato di salute dell&#8217;applicazione.<\/p>\n<p>Questi sono esempi di base delle informazioni che possiamo includere nei messaggi di log strutturati. Inoltre, potete personalizzare completamente i dati in base alle vostre esigenze.<\/p>\n<p>Ecco alcuni esempi di dati che potete raccogliere con i log strutturati:<\/p>\n<ol>\n<li>La porta utilizzata per eseguire la funzione<\/li>\n<li>La data e l&#8217;ora in cui si \u00e8 verificato l&#8217;evento<\/li>\n<li>Il nome utente o l&#8217;ID del cliente<\/li>\n<li>Una descrizione dell&#8217;evento (messaggio di log)<\/li>\n<li>Il protocollo utilizzato per eseguire la funzione<\/li>\n<li>Il luogo in cui si \u00e8 verificato l&#8217;evento (indica l&#8217;API o l&#8217;applicazione in esecuzione)<\/li>\n<li>L&#8217;ID univoco dell&#8217;evento<\/li>\n<li>Il tipo di azione attivata (livello di log)<\/li>\n<\/ol>\n<p>I log devono contenere dati sufficienti per visualizzare facilmente la soluzione o il motivo dell&#8217;evento di log. Inoltre, tenete presente che non dovreste memorizzare nei log tutti i tipi di informazioni, come le password o i dati sensibili.<\/p>\n<p>Ora che abbiamo dato un&#8217;occhiata alle caratteristiche del logging di Laravel, passiamo all&#8217;implementazione del logging di Laravel costruendo un&#8217;applicazione dove il logging \u00e8 in primo piano.<\/p>\n<h2>Come Implementare il Logging in Laravel con Todo App<\/h2>\n<p>Ora applicheremo quanto appreso finora creando un nuovo progetto Laravel e implementando il logging Laravel.<\/p>\n<p>Se non avete mai usato Laravel prima d&#8217;ora, potete prima leggere <a href=\"https:\/\/kinsta.com\/it\/blog\/framework-laravel\/\">cos&#8217;\u00e8 Laravel<\/a> o dare un&#8217;occhiata al nostro elenco di <a href=\"https:\/\/kinsta.com\/it\/blog\/tutorial-laravel\/\">eccellenti tutorial su Laravel<\/a> per iniziare.<\/p>\n<h3>Impostazione di Laravel<\/h3>\n<p>Per prima cosa, creeremo una nuova istanza di Laravel utilizzando il comando seguente. Potete consultare la <a href=\"https:\/\/laravel.com\/docs\/8.x\/installation\" target=\"_blank\" rel=\"noopener noreferrer\">documentazione ufficiale<\/a> per saperne di pi\u00f9.<\/p>\n<p>Aprite la vostra console e navigate fino al punto in cui memorizzate i vostri progetti PHP prima di eseguire i comandi qui sotto. Assicuratevi che <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Composer<\/a> sia installato e configurato correttamente.<\/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>Configurazione e Seeding del Database<\/h3>\n<p>Ora configureremo il nostro database, creeremo un nuovo modello <code>Todo<\/code> e inseriremo 200 dati falsi per i test.<\/p>\n<p>Aprite il vostro client di database e create un nuovo database. Faremo lo stesso con il nome <code>laravel_logging_app_db<\/code> e poi riempiremo il nostro file <strong>.env<\/strong> con le credenziali del database:<\/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>Ora eseguiamo il seguente comando per creare contemporaneamente la migrazione e il modello <code>Todo<\/code>:<\/p>\n<pre><code class=\"language-bash\">php artisan make:model Todo -mc<\/code><\/pre>\n<p>Aprite la migrazione appena creata che si trova in <strong>database\/migrations\/xxx-create-todos-xxx.php<\/strong> e incollate i seguenti codici:<\/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>Potete creare i vostro todos con i dati di Faker imparando <a href=\"https:\/\/laravel.com\/docs\/8.x\/seeding\" target=\"_blank\" rel=\"noopener noreferrer\">a creare i database<\/a> in Laravel con Faker.<\/p>\n<h3>Panoramica di Monolog<\/h3>\n<p>Con Laravel Monolog, potete trasmettere e inviare log strutturati a diversi canali come email, Slack, file, socket, caselle di posta, database e vari servizi web. In Laravel, potete configurare i log da un unico file di configurazione situato in <strong>config\/logging.php<\/strong>.<\/p>\n<p>Il file di configurazione contiene dei driver di log predefiniti tra cui scegliere; il driver predefinito \u00e8 <code>stack<\/code> che utilizza il canale <code>single<\/code> per registrare in un file <strong>laravel.log<\/strong> che si trova nella cartella <strong>storage\/logs<\/strong>.<\/p>\n<p>Dimostreremo il log strutturato usando un paio di <a href=\"https:\/\/laravel.com\/docs\/8.x\/logging#available-channel-drivers\" target=\"_blank\" rel=\"noopener noreferrer\">driver di log di Laravel<\/a>.<\/p>\n<p>Laravel mette a disposizione una <a href=\"https:\/\/laravel.com\/docs\/8.x\/logging#writing-log-messages\" target=\"_blank\" rel=\"noopener noreferrer\">serie di metodi<\/a> per interagire con i log, come dimostrato a breve nel file del controller <strong>TodosController.php<\/strong>.<\/p>\n<h3>Scrivere i Messaggi di Log nel Controller<\/h3>\n<p>Aprite il file del controller <strong>TodosController.php<\/strong> appena creato che si trova nella cartella <strong>app\/Http\/Controllers<\/strong> e incollate i seguenti codici:<\/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>All&#8217;interno di ogni metodo di <code>TodoController<\/code>, abbiamo aggiunto la facciata <code>Log<\/code> con un livello di log specifico per definire il tipo di errore che vogliamo inviare. Di seguito \u00e8 riportato un esempio di utilizzo della facciata Log nel metodo <code>store<\/code>.<\/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>Formattazione dei Messaggi di Log<\/h3>\n<p>Supponiamo che vi sentiate a vostro agio con il sito <code>LineFormatter<\/code> utilizzato da Laravel, che fa un ottimo lavoro nel fornire messaggi leggibili e utili.<\/p>\n<p>In questo caso, potete creare facilmente un oggetto formattatore personalizzato che si adatti al vostro caso d&#8217;uso e usarlo in tutta l&#8217;applicazione.<\/p>\n<p>La documentazione ufficiale di Monolog fornisce un elenco completo dei <a href=\"https:\/\/github.com\/Seldaek\/monolog\/blob\/main\/doc\/02-handlers-formatters-processors.md#formatters\" target=\"_blank\" rel=\"noopener noreferrer\">formattatori disponibili<\/a> e potete facilmente crearne uno personalizzato.<\/p>\n<p>In Laravel, potete impostare uno qualsiasi dei driver in modo che usi il vostro formattatore personalizzato aggiungendolo all&#8217;elenco, come indicato di seguito, all&#8217;interno del file di configurazione situato 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>L&#8217;esempio precedente aggiunge un formattatore personalizzato <code>MonologFormatterHtmlFormatter<\/code> al driver <code>daily<\/code> utilizzando le chiavi <code>formatter<\/code> e <code>formatter_with<\/code> nella configurazione del canale <code>daily<\/code> per cambiare il formato delle date.<\/p>\n<h3>Inviare i Log a Diversi Canali<\/h3>\n<p>Con l&#8217;aiuto di Monolog, Laravel pu\u00f2 inviare i log a diversi canali e a pi\u00f9 canali contemporaneamente.<\/p>\n<p>Vediamo come inviare i log al nostro canale Slack seguendo questi semplici passaggi. Cambiate il canale di log predefinito in Slack e aggiungete l&#8217;URL di <a href=\"https:\/\/api.slack.com\/messaging\/webhooks\" target=\"_blank\" rel=\"noopener noreferrer\">Slack Webhook<\/a> nel vostro file <strong>.env<\/strong>.<\/p>\n<pre><code class=\"markdown\">LOG_CHANNEL=slack\nLOG_SLACK_WEBBHOOK_URL= Slack_webhook_url_here<\/code><\/pre>\n<p>Successivamente, testate la vostra configurazione registrando un messaggio nella vostra applicazione utilizzando la facciata <code>Log<\/code> come quella mostrata di seguito:<\/p>\n<pre><code class=\"markdown\">Log::debug(\"The API instance is on fire caused by:\", ['user' =&gt; 1])<\/code><\/pre>\n<p>Potete aprire il vostro canale Slack per verificare se l&#8217;errore \u00e8 stato stampato nel canale desiderato che avete specificato durante la generazione dell&#8217;URL Webhook.<\/p>\n<h2>Riepilogo<\/h2>\n<p>La registrazione \u00e8 importante quanto qualsiasi altro fattore della vostra applicazione, se non di pi\u00f9. Per questo motivo, il manifesto della Twelve-Factor App la suggerisce come uno degli aspetti pi\u00f9 critici di ogni applicazione moderna.<\/p>\n<p>Con un processo di registrazione efficace, potete facilmente leggere, vedere e visualizzare gli errori e i difetti che si verificano nella vostra applicazione pronta per la produzione. A tal fine, \u00e8 importante implementare un logging strutturato nella vostra applicazione fin dall&#8217;inizio del progetto.<\/p>\n\n<p>In questo articolo abbiamo esplorato la registrazione, o logging, di Laravel e i motivi per cui dovreste usarla nel vostro prossimo progetto. Abbiamo discusso in dettaglio sia il logging strutturato che il logging centralizzato. Inoltre, abbiamo imparato come implementare il logging in Laravel costruendo un&#8217;applicazione Todo.<\/p>\n<p>Come pensate di implementare il logging nella vostra prossima applicazione? Fatecelo sapere nella sezione dei commenti.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando si sviluppa un&#8217;applicazione moderna, la registrazione (o logging) dovrebbe essere in cima alla lista delle priorit\u00e0. Il logging fornisce un modo per visualizzare la vostra &#8230;<\/p>\n","protected":false},"author":193,"featured_media":59450,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[25528,26022,26023,17413,41],"topic":[26164,26020],"class_list":["post-59449","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-laravel","tag-logging","tag-monitoring","tag-performance","tag-php","topic-framework-php","topic-laravel"],"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>Registri di Laravel: Tutto Quello Che Devi Sapere<\/title>\n<meta name=\"description\" content=\"I registri sono fondamentali per monitorare la salute e l&#039;efficacia dei progetti di sviluppo. Scopri come applicare il logging strutturato 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\/it\/blog\/registri-laravel\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Registri di Laravel: Tutto Quello Che Devi Sapere\" \/>\n<meta property=\"og:description\" content=\"I registri sono fondamentali per monitorare la salute e l&#039;efficacia dei progetti di sviluppo. Scopri come applicare il logging strutturato in Laravel.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-29T12:05:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-01T14:12:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/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=\"I registri sono fondamentali per monitorare la salute e l&#039;efficacia dei progetti di sviluppo. Scopri come applicare il logging strutturato in Laravel.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/08\/laravel-logging.png\" \/>\n<meta name=\"twitter:creator\" content=\"@kaperskyguru\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Solomon Eseme\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/\"},\"author\":{\"name\":\"Solomon Eseme\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2\"},\"headline\":\"Registri di Laravel: Tutto Quello Che Devi Sapere\",\"datePublished\":\"2022-08-29T12:05:39+00:00\",\"dateModified\":\"2023-02-01T14:12:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/\"},\"wordCount\":2055,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/08\/laravel-logging.png\",\"keywords\":[\"laravel\",\"logging\",\"monitoring\",\"performance\",\"php\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/\",\"name\":\"Registri di Laravel: Tutto Quello Che Devi Sapere\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/08\/laravel-logging.png\",\"datePublished\":\"2022-08-29T12:05:39+00:00\",\"dateModified\":\"2023-02-01T14:12:01+00:00\",\"description\":\"I registri sono fondamentali per monitorare la salute e l'efficacia dei progetti di sviluppo. Scopri come applicare il logging strutturato in Laravel.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/08\/laravel-logging.png\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/08\/laravel-logging.png\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Registri di Laravel: Tutto Quello Che Devi Sapere\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"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\/it\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2\",\"name\":\"Solomon Eseme\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/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\/it\/blog\/author\/solomoneseme\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Registri di Laravel: Tutto Quello Che Devi Sapere","description":"I registri sono fondamentali per monitorare la salute e l'efficacia dei progetti di sviluppo. Scopri come applicare il logging strutturato 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\/it\/blog\/registri-laravel\/","og_locale":"it_IT","og_type":"article","og_title":"Registri di Laravel: Tutto Quello Che Devi Sapere","og_description":"I registri sono fondamentali per monitorare la salute e l'efficacia dei progetti di sviluppo. Scopri come applicare il logging strutturato in Laravel.","og_url":"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2022-08-29T12:05:39+00:00","article_modified_time":"2023-02-01T14:12:01+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/08\/laravel-logging.png","type":"image\/png"}],"author":"Solomon Eseme","twitter_card":"summary_large_image","twitter_description":"I registri sono fondamentali per monitorare la salute e l'efficacia dei progetti di sviluppo. Scopri come applicare il logging strutturato in Laravel.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/08\/laravel-logging.png","twitter_creator":"@kaperskyguru","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Solomon Eseme","Tempo di lettura stimato":"14 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/"},"author":{"name":"Solomon Eseme","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2"},"headline":"Registri di Laravel: Tutto Quello Che Devi Sapere","datePublished":"2022-08-29T12:05:39+00:00","dateModified":"2023-02-01T14:12:01+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/"},"wordCount":2055,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/08\/laravel-logging.png","keywords":["laravel","logging","monitoring","performance","php"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/","url":"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/","name":"Registri di Laravel: Tutto Quello Che Devi Sapere","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/08\/laravel-logging.png","datePublished":"2022-08-29T12:05:39+00:00","dateModified":"2023-02-01T14:12:01+00:00","description":"I registri sono fondamentali per monitorare la salute e l'efficacia dei progetti di sviluppo. Scopri come applicare il logging strutturato in Laravel.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/registri-laravel\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/08\/laravel-logging.png","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2022\/08\/laravel-logging.png","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/registri-laravel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/it\/argomenti\/laravel\/"},{"@type":"ListItem","position":3,"name":"Registri di Laravel: Tutto Quello Che Devi Sapere"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","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\/it\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2","name":"Solomon Eseme","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/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\/it\/blog\/author\/solomoneseme\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/59449","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/193"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=59449"}],"version-history":[{"count":11,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/59449\/revisions"}],"predecessor-version":[{"id":60585,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/59449\/revisions\/60585"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/59449\/translations\/en"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/59449\/translations\/jp"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/59449\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/59449\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/59449\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/59449\/translations\/de"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/59449\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/59449\/translations\/es"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/59449\/translations\/dk"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/59449\/translations\/se"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/59449\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/59450"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=59449"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=59449"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=59449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}