{"id":60864,"date":"2022-08-29T13:05:17","date_gmt":"2022-08-29T12:05:17","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=60864&#038;preview=true&#038;preview_id=60864"},"modified":"2023-11-03T03:47:38","modified_gmt":"2023-11-03T02:47:38","slug":"journalisation-laravel","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/","title":{"rendered":"Journalisation Laravel : Tout ce que vous devez savoir"},"content":{"rendered":"<p>Lors du d\u00e9veloppement d&rsquo;une application moderne, la journalisation doit figurer en t\u00eate de liste des priorit\u00e9s.<\/p>\n<p>La journalisation fournit un moyen de visualiser votre application tant en d\u00e9veloppement qu&rsquo;en production, ce qui permet la transparence et la visibilit\u00e9. Avec une journalisation correctement structur\u00e9e, les applications modernes peuvent devenir plus faciles \u00e0 maintenir, car nous pouvons identifier de mani\u00e8re proactive les points de d\u00e9faillance et les goulots d&rsquo;\u00e9tranglement dans notre application.<\/p>\n<p>Le framework Laravel est livr\u00e9 avec un syst\u00e8me de journalisation robuste qui prend en charge tous les probl\u00e8mes li\u00e9s \u00e0 la configuration d&rsquo;un syst\u00e8me de journalisation correctement structur\u00e9. Ce nouveau syst\u00e8me de journalisation introduit dans Laravel 6.5 est puissant, et nous allons l&rsquo;explorer dans cet article.<\/p>\n\n<p>Cet article explorera les bases de la journalisation Laravel et les raisons pour lesquelles vous devriez utiliser la journalisation Laravel dans votre prochain projet. Nous aborderons en d\u00e9tail la journalisation structur\u00e9e et la journalisation centralis\u00e9e. En outre, nous apprendrons comment mettre en \u0153uvre la journalisation Laravel en construisant une application Todo.<\/p>\n<p>Vous tirerez davantage profit de cet article si vous avez d\u00e9j\u00e0 acquis les connaissances suivantes :<\/p>\n<ul>\n<li>Bonne connaissance du d\u00e9veloppement web<\/li>\n<li><a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-ce-que-laravel\/\">Compr\u00e9hension basique de Laravel<\/a><\/li>\n<li>Cr\u00e9ation d&rsquo;applications avec 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>Qu&rsquo;est-ce que la journalisation Laravel ?<\/h2>\n<p>La journalisation Laravel concerne la fa\u00e7on dont Laravel g\u00e8re la journalisation, ou le signalement automatique des probl\u00e8mes, en utilisant un syst\u00e8me de journalisation PHP viral appel\u00e9 Monolog. Cependant, en raison de la philosophie de Laravel qui consiste \u00e0 utiliser des biblioth\u00e8ques existantes populaires pour impl\u00e9menter diff\u00e9rentes fonctionnalit\u00e9s du framework, Laravel utilise Monolog pour tous ses besoins de journalisation.<\/p>\n<p><a href=\"https:\/\/seldaek.github.io\/monolog\/\" target=\"_blank\" rel=\"noopener noreferrer\">Monolog<\/a> est une biblioth\u00e8que de journalisation PHP tr\u00e8s flexible et populaire que nous pouvons configurer pour envoyer vos journaux vers des fichiers, des sockets, des bases de donn\u00e9es et d&rsquo;autres services w eb. Monolog fournit une interface famili\u00e8re pour l&rsquo;\u00e9criture de journaux \u00e0 partir de fichiers texte standard jusqu&rsquo;\u00e0 des services tiers avanc\u00e9s de gestion de journaux. Laravel configure g\u00e9n\u00e9ralement Monolog pour utiliser un fichier de configuration de journalisation standard.<\/p>\n<p>Pour plus d&rsquo;informations sur Monolog et ses fonctionnalit\u00e9s, consultez la <a href=\"https:\/\/seldaek.github.io\/monolog\/\" target=\"_blank\" rel=\"noopener noreferrer\">documentation officielle<\/a>, car cela d\u00e9passe le cadre de cet article.<\/p>\n<p>Avant de nous plonger dans la configuration et la mise en \u0153uvre de la journalisation Laravel \u00e0 l&rsquo;aide de Monolog, explorons d&rsquo;autres raisons d&rsquo;utiliser la journalisation Laravel et les diff\u00e9rents types.<\/p>\n<h2>Pourquoi utiliser la journalisation Laravel ?<\/h2>\n<p>Pourquoi la journalisation est-elle n\u00e9cessaire ?<\/p>\n<p>Le manifeste <a href=\"https:\/\/12factor.net\/\" target=\"_blank\" rel=\"noopener noreferrer\">Twelve-Factor App<\/a> traite la journalisation comme l&rsquo;une des pr\u00e9occupations essentielles d&rsquo;une application moderne, car la journalisation est une cl\u00e9 de la performance et de la surveillance.<\/p>\n<p>Les <a href=\"https:\/\/kinsta.com\/fr\/docs\/hebergement-wordpress\/depannage-wordpress\/voir-journaux-serveur\/\">journaux<\/a> aident \u00e0 comprendre en d\u00e9tail les erreurs qui se produisent en production et leur origine. De plus, avec des structures de journal appropri\u00e9es, ils peuvent montrer l&rsquo;utilisateur particulier, l&rsquo;action qui a caus\u00e9 l&rsquo;erreur, et la solution possible pour une correction et une maintenance plus rapides.<\/p>\n<p>La journalisation structur\u00e9e est une bou\u00e9e de sauvetage dans les applications de production en aidant \u00e0 d\u00e9pister les d\u00e9fauts et \u00e0 r\u00e9soudre les probl\u00e8mes en production. En outre, vous pouvez surveiller et collecter tous vos messages de journalisation en temps r\u00e9el \u00e0 l&rsquo;aide d&rsquo;outils de journalisation sp\u00e9cialis\u00e9s pour une analyse et des rapports en direct.<\/p>\n<p>Pour ces raisons, vous devez faire de la journalisation structur\u00e9e une priorit\u00e9 absolue dans votre prochain projet d&rsquo;application moderne.<\/p>\n<p>Voyons ensemble les diff\u00e9rents styles de journalisation disponibles.<\/p>\n<h2>Les bases de la journalisation Laravel<\/h2>\n<p>Apprendre les bases de la journalisation vous aidera \u00e0 comprendre comment Laravel g\u00e8re la journalisation et comment vous pouvez am\u00e9liorer vos pratiques de journalisation structur\u00e9e.<\/p>\n<p>Examinons deux concepts essentiels de la journalisation pour mieux comprendre comment mettre en \u0153uvre nos proc\u00e9dures de journalisation.<\/p>\n<h3>Journalisation structur\u00e9e de Laravel<\/h3>\n<p>Dans le d\u00e9veloppement de logiciels, la journalisation structur\u00e9e consiste \u00e0 mettre en \u0153uvre un format de message pr\u00e9d\u00e9termin\u00e9 et coh\u00e9rent pour les journaux d&rsquo;application. Ce format permet de traiter les messages comme des donn\u00e9es qui peuvent \u00eatre surveill\u00e9es, manipul\u00e9es et visualis\u00e9es bien mieux que le format texte ordinaire.<\/p>\n<p>Vous devez mettre en \u0153uvre une approche de journalisation structur\u00e9e dans le d\u00e9veloppement de vos applications modernes car les fichiers journaux sont les atouts essentiels des d\u00e9veloppeurs lorsque quelque chose d&rsquo;anormal arrive \u00e0 votre application en production.<\/p>\n<p>Comme Laravel utilise Monolog, les d\u00e9veloppeurs peuvent rapidement mettre en \u0153uvre une journalisation structur\u00e9e en configurant l&rsquo;outil de journalisation pour qu&rsquo;il re\u00e7oive des types d&rsquo;informations sp\u00e9cifiques, en stockant les fichiers journaux dans diff\u00e9rents formats et en envoyant les journaux \u00e0 divers services tiers de gestion des journaux pour les visualiser.<\/p>\n<h3>Journalisation centralis\u00e9e de Laravel<\/h3>\n<p>Dans un syst\u00e8me de journalisation centralis\u00e9e, les journaux sont envoy\u00e9s \u00e0 des solutions de gestion centralis\u00e9e des journaux (Centralized Log Management ou CLM) \u00e0 partir de plusieurs sources pour \u00eatre facilement consolid\u00e9s et visualis\u00e9s. Cependant, la CLM est une solution de journalisation sp\u00e9cialis\u00e9e qui collecte les messages de journalisation de diff\u00e9rentes sources et consolide les donn\u00e9es pour un traitement et une visualisation faciles.<\/p>\n<p>Outre la collecte de donn\u00e9es, la CLM est \u00e9galement cens\u00e9e prendre en charge l&rsquo;analyse des donn\u00e9es de journalisation et la pr\u00e9sentation claire des donn\u00e9es apr\u00e8s analyse.<\/p>\n<h3>Journalisation structur\u00e9e vs journalisation de base<\/h3>\n<p>Examinons la diff\u00e9rence entre la journalisation structur\u00e9e et la journalisation de base (non structur\u00e9e) et pourquoi vous devriez utiliser la journalisation structur\u00e9e dans votre projet Laravel.<\/p>\n<h4>Journalisation de base<\/h4>\n<p>Dans la journalisation de base, les fichiers journaux sont stock\u00e9s dans un format brut avec des donn\u00e9es limit\u00e9es pour interroger et identifier les journaux individuels.<\/p>\n<p>Lorsqu&rsquo;ils utilisent la journalisation de base, les <a href=\"https:\/\/kinsta.com\/fr\/\">d\u00e9veloppeurs<\/a> ne pourront pas utiliser d&rsquo;outils d&rsquo;analyse tiers pour lire, visualiser et analyser les journaux, \u00e0 moins qu&rsquo;ils ne d\u00e9veloppent un outil personnalis\u00e9 ou qu&rsquo;ils s&rsquo;en tiennent \u00e0 un outil limit\u00e9 qui prend en charge leur format de journal.<\/p>\n<p>Il y a trois grandes raisons d&rsquo;\u00e9viter d&rsquo;utiliser la journalisation de base :<\/p>\n<ol>\n<li>Les syst\u00e8mes centralis\u00e9s de gestion des journaux ne peuvent pas travailler avec les donn\u00e9es sans support suppl\u00e9mentaire.<\/li>\n<li>Une solution personnalis\u00e9e est n\u00e9cessaire pour lire et analyser les donn\u00e9es d&rsquo;une solution de journalisation de base.<\/li>\n<li>Il peut \u00eatre difficile pour les administrateurs de lire les donn\u00e9es de journalisation de base car elles sont brutes et non structur\u00e9es.<\/li>\n<\/ol>\n<h4>La journalisation structur\u00e9e<\/h4>\n<p>La journalisation structur\u00e9e permet aux d\u00e9veloppeurs de gagner du temps en utilisant des outils d&rsquo;analyse de journaux tiers \u00e0 code open source qui prennent en charge la structure standard des journaux pour lire, visualiser et analyser les journaux.<\/p>\n<p>Les journaux sont utiles s&rsquo;ils contiennent les donn\u00e9es correctes \u00e9num\u00e9r\u00e9es ci-dessous, ce qui est l&rsquo;objectif de la journalisation structur\u00e9e. Nous pouvons utiliser les donn\u00e9es incluses dans la journalisation structur\u00e9e pour cr\u00e9er des tableaux de bord, des graphiques, des diagrammes et toute autre visualisation utile pour d\u00e9terminer la sant\u00e9 de l&rsquo;application.<\/p>\n<p>Ce sont des exemples de base des informations que nous pouvons inclure dans les messages de journalisation structur\u00e9e. En outre, vous pouvez enti\u00e8rement personnaliser les donn\u00e9es en fonction de vos besoins.<\/p>\n<p>Voici quelques exemples de donn\u00e9es que vous pouvez collecter avec la journalisation structur\u00e9e :<\/p>\n<ol>\n<li>Le port utilis\u00e9 pour ex\u00e9cuter la fonction<\/li>\n<li>La date et l&rsquo;heure auxquelles l&rsquo;\u00e9v\u00e9nement s&rsquo;est produit<\/li>\n<li>Le nom d&rsquo;utilisateur ou l&rsquo;ID du client<\/li>\n<li>Une description de l&rsquo;\u00e9v\u00e9nement (message du journal)<\/li>\n<li>Le protocole utilis\u00e9 pour ex\u00e9cuter la fonction<\/li>\n<li>L&#8217;emplacement de l&rsquo;\u00e9v\u00e9nement d\u00e9clench\u00e9 (indiquer l&rsquo;API ou l&rsquo;application en cours d&rsquo;ex\u00e9cution)<\/li>\n<li>L&rsquo;ID unique de l&rsquo;\u00e9v\u00e9nement<\/li>\n<li>Le type d&rsquo;action d\u00e9clench\u00e9e (niveau du journal)<\/li>\n<\/ol>\n<p>Les journaux doivent contenir suffisamment de donn\u00e9es pour permettre de visualiser facilement la solution ou la raison de l&rsquo;\u00e9v\u00e9nement de journal. Notez \u00e9galement que vous ne devez pas stocker tous les types d&rsquo;informations, comme les mots de passe ou les donn\u00e9es sensibles dans les journaux.<\/p>\n<p>Maintenant que nous avons eu un aper\u00e7u de ce qu&rsquo;est la journalisation Laravel, passons \u00e0 la mise en \u0153uvre de la journalisation Laravel en construisant une application avec la journalisation comme citoyen de premi\u00e8re classe.<\/p>\n<h2>Comment mettre en \u0153uvre la journalisation Laravel avec Todo App<\/h2>\n<p>Nous allons maintenant appliquer ce que nous avons appris jusqu&rsquo;\u00e0 pr\u00e9sent en cr\u00e9ant un nouveau projet Laravel et en impl\u00e9mentant la journalisation Laravel.<\/p>\n<p>Si vous n&rsquo;avez jamais utilis\u00e9 Laravel auparavant, vous pouvez lire ce <a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-ce-que-laravel\/\">qu&rsquo;est Laravel<\/a> ou jeter un coup d&rsquo;\u0153il \u00e0 notre liste <a href=\"https:\/\/kinsta.com\/fr\/blog\/tutoriels-laravel\/\">d&rsquo;excellents tutoriels Laravel<\/a> pour commencer.<\/p>\n<h3>Configuration de Laravel<\/h3>\n<p>Tout d&rsquo;abord, nous allons cr\u00e9er une nouvelle instance de Laravel \u00e0 l&rsquo;aide de la commande ci-dessous. Vous pouvez consulter la <a href=\"https:\/\/laravel.com\/docs\/8.x\/installation\" target=\"_blank\" rel=\"noopener noreferrer\">documentation officielle<\/a> pour en savoir plus.<\/p>\n<p>Ouvrez votre console et allez jusqu&rsquo;\u00e0 l&rsquo;endroit o\u00f9 vous stockez vos projets PHP avant d&rsquo;ex\u00e9cuter les commandes ci-dessous. Assurez-vous que <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Composer<\/a> est install\u00e9 et configur\u00e9 correctement.<\/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>Configuration et ensemencement de la base de donn\u00e9es<\/h3>\n<p>Ensuite, nous allons configurer notre base de donn\u00e9es, cr\u00e9er un nouveau mod\u00e8le <code>Todo<\/code>, et ensemencer 200 donn\u00e9es factices pour les tests.<\/p>\n<p>Ouvrez votre client de base de donn\u00e9es et cr\u00e9ez une nouvelle base de donn\u00e9es. Nous ferons de m\u00eame avec le nom <code>laravel_logging_app_db<\/code>, puis nous remplirons notre fichier <strong>.env<\/strong> avec les informations d&rsquo;identification de la base de donn\u00e9es :<\/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>Ensuite, nous allons ex\u00e9cuter la commande suivante pour cr\u00e9er simultan\u00e9ment la migration et le mod\u00e8le <code>Todo<\/code>:<\/p>\n<pre><code class=\"language-bash\">php artisan make:model Todo -mc<\/code><\/pre>\n<p>Ouvrez la migration nouvellement cr\u00e9\u00e9e trouv\u00e9e <strong>database\/migrations\/xxx-create-todos-xxx.php<\/strong> et collez les codes suivants :<\/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>Vous pouvez ensemencer vos todos avec des donn\u00e9es Faker en apprenant \u00e0 <a href=\"https:\/\/laravel.com\/docs\/8.x\/seeding\" target=\"_blank\" rel=\"noopener noreferrer\">ensemencer vos bases de donn\u00e9es<\/a> dans Laravel \u00e0 l&rsquo;aide de Faker.<\/p>\n<h3>Aper\u00e7u de Monolog<\/h3>\n<p>Avec Laravel Monolog, vous pouvez diffuser et envoyer des journaux structur\u00e9s vers diff\u00e9rents canaux tels que des e-mails, Slack, des fichiers, des sockets, des bo\u00eetes de r\u00e9ception, des bases de donn\u00e9es et divers services web. Dans Laravel, vous pouvez configurer la journalisation \u00e0 partir d&rsquo;un seul fichier de configuration situ\u00e9 dans <strong>config\/logging.php<\/strong>.<\/p>\n<p>Le fichier de configuration contient des pilotes de journalisation pr\u00e9d\u00e9finis parmi lesquels vous pouvez choisir, et le pilote par d\u00e9faut est un <code>stack<\/code> qui utilise le canal <code>single<\/code> pour journaliser vers un fichier <strong>laravel.log<\/strong> situ\u00e9 dans le dossier <strong>storage\/logs<\/strong>. Nous allons faire la d\u00e9monstration de la journalisation structur\u00e9e en utilisant quelques-uns des <a href=\"https:\/\/laravel.com\/docs\/8.x\/logging#available-channel-drivers\" target=\"_blank\" rel=\"noopener noreferrer\">pilotes de journalisation de Laravel<\/a>.<\/p>\n<p>Laravel fournit <a href=\"https:\/\/laravel.com\/docs\/8.x\/logging#writing-log-messages\" target=\"_blank\" rel=\"noopener noreferrer\">quelques m\u00e9thodes<\/a> pour interagir avec les journaux, comme nous allons le d\u00e9montrer de mani\u00e8re g\u00e9n\u00e9rale dans le fichier contr\u00f4leur <strong>TodosController.php<\/strong> sous peu.<\/p>\n<h3>\u00c9criture de messages de journal dans le contr\u00f4leur<\/h3>\n<p>Ouvrez le fichier contr\u00f4leur <strong>TodosController.php<\/strong> nouvellement cr\u00e9\u00e9 qui se trouve dans le dossier <strong>app\/Http\/Controllers<\/strong> et collez les codes suivants :<\/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>Dans chacune des m\u00e9thodes du site <code>TodoController<\/code>, nous avons ajout\u00e9 la fa\u00e7ade <code>Log<\/code> avec un niveau de journal sp\u00e9cifique pour d\u00e9finir le type d&rsquo;erreur que nous voulons envoyer. Vous trouverez ci-dessous un exemple d&rsquo;utilisation de la<\/p>\n<p>facade Log dans la m\u00e9thode <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>Formatage des messages du journal<\/h3>\n<p>Supposons que vous ne soyez pas \u00e0 l&rsquo;aise avec le site <code>LineFormatter<\/code> utilis\u00e9 par d\u00e9faut par Laravel, qui fait un excellent travail en fournissant des messages lisibles et utiles.<\/p>\n<p>Dans ce cas, vous pouvez facilement cr\u00e9er un objet formateur personnalis\u00e9 pour r\u00e9pondre \u00e0 votre cas d&rsquo;utilisation et l&rsquo;utiliser dans toute l&rsquo;application.<\/p>\n<p>La documentation officielle de Monolog donne une liste compl\u00e8te des <a href=\"https:\/\/github.com\/Seldaek\/monolog\/blob\/main\/doc\/02-handlers-formatters-processors.md#formatters\" target=\"_blank\" rel=\"noopener noreferrer\">formateurs disponibles<\/a> et permet de cr\u00e9er facilement un formateur personnalis\u00e9.<\/p>\n<p>Dans Laravel, vous pouvez facilement configurer n&rsquo;importe quel pilote pour utiliser votre formateur personnalis\u00e9 en l&rsquo;ajoutant \u00e0 la liste comme ci-dessous dans le fichier de configuration situ\u00e9 \u00e0 <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&rsquo;exemple ci-dessus ajoute un <code>MonologFormatterHtmlFormatter<\/code> personnalis\u00e9 au pilote <code>daily<\/code> en utilisant les cl\u00e9s <code>formatter<\/code> et <code>formatter_with<\/code> dans la configuration du canal <code>daily<\/code> pour changer le format des dates.<\/p>\n<h3>Envoi de journaux \u00e0 diff\u00e9rents canaux<\/h3>\n<p>Avec l&rsquo;aide de Monolog, Laravel peut envoyer des journaux \u00e0 diff\u00e9rents canaux et \u00e0 plusieurs canaux simultan\u00e9ment.<\/p>\n<p>Montrons comment envoyer des journaux \u00e0 notre canal Slack en suivant ces \u00e9tapes simples. Changez le canal de log par d\u00e9faut en Slack et ajoutez l&rsquo;URL du <a href=\"https:\/\/api.slack.com\/messaging\/webhooks\" target=\"_blank\" rel=\"noopener noreferrer\">Webhook Slack<\/a> dans votre fichier <strong>.env<\/strong>.<\/p>\n<pre><code class=\"markdown\">LOG_CHANNEL=slack\nLOG_SLACK_WEBBHOOK_URL= Slack_webhook_url_here<\/code><\/pre>\n<p>Ensuite, testez votre configuration en enregistrant un message dans votre application \u00e0 l&rsquo;aide de la fa\u00e7ade <code>Log<\/code> comme celle pr\u00e9sent\u00e9e ci-dessous :<\/p>\n<pre><code class=\"markdown\">Log::debug(\"The API instance is on fire caused by:\", ['user' =&gt; 1])<\/code><\/pre>\n<p>Vous pouvez ouvrir votre canal Slack pour v\u00e9rifier l&rsquo;erreur imprim\u00e9e dans le canal souhait\u00e9 que vous avez sp\u00e9cifi\u00e9 lors de la g\u00e9n\u00e9ration de l&rsquo;URL du Webhook.<\/p>\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>La journalisation est aussi importante que tout autre facteur de votre application, si ce n&rsquo;est plus. C&rsquo;est pourquoi elle est sugg\u00e9r\u00e9e par le manifeste Twelve-Factor App comme l&rsquo;une des pr\u00e9occupations les plus critiques de toute application moderne.<\/p>\n<p>Avec une journalisation efficace, vous pouvez facilement lire, voir et visualiser les erreurs et les d\u00e9fauts qui se produisent dans votre application pr\u00eate pour la production. \u00c0 cette fin, il est important que vous impl\u00e9mentiez une journalisation structur\u00e9e dans votre application d\u00e8s le d\u00e9but du projet.<\/p>\n\n<p>Dans cet article, nous avons explor\u00e9 la journalisation de Laravel et pourquoi vous devriez l&rsquo;utiliser dans votre prochain projet. Nous avons abord\u00e9 en d\u00e9tail la journalisation structur\u00e9e et la journalisation centralis\u00e9e. En outre, nous avons appris \u00e0 mettre en \u0153uvre la journalisation Laravel en construisant une application Todo.<\/p>\n<p>Comment comptez-vous mettre en \u0153uvre la journalisation dans votre prochaine application ? Faites-le nous savoir dans la section des commentaires.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lors du d\u00e9veloppement d&rsquo;une application moderne, la journalisation doit figurer en t\u00eate de liste des priorit\u00e9s. La journalisation fournit un moyen de visualiser votre application tant &#8230;<\/p>\n","protected":false},"author":193,"featured_media":60900,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[433,772,296,63,31],"topic":[998,986],"class_list":["post-60864","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-laravel","tag-logging","tag-monitoring","tag-performance","tag-php","topic-frameworks-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>Journalisation Laravel : Tout ce que vous devez savoir<\/title>\n<meta name=\"description\" content=\"La journalisation est essentielle pour surveiller la sant\u00e9 et l&#039;efficacit\u00e9 de vos projets de d\u00e9veloppement. Apprenez \u00e0 appliquer une journalisation structur\u00e9e dans 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\/fr\/blog\/journalisation-laravel\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Journalisation Laravel : Tout ce que vous devez savoir\" \/>\n<meta property=\"og:description\" content=\"La journalisation est essentielle pour surveiller la sant\u00e9 et l&#039;efficacit\u00e9 de vos projets de d\u00e9veloppement. Apprenez \u00e0 appliquer une journalisation structur\u00e9e dans Laravel.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-29T12:05:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-03T02:47:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/08\/journalisation-laravel.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=\"La journalisation est essentielle pour surveiller la sant\u00e9 et l&#039;efficacit\u00e9 de vos projets de d\u00e9veloppement. Apprenez \u00e0 appliquer une journalisation structur\u00e9e dans Laravel.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/08\/journalisation-laravel.png\" \/>\n<meta name=\"twitter:creator\" content=\"@kaperskyguru\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Solomon Eseme\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/\"},\"author\":{\"name\":\"Solomon Eseme\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2\"},\"headline\":\"Journalisation Laravel : Tout ce que vous devez savoir\",\"datePublished\":\"2022-08-29T12:05:17+00:00\",\"dateModified\":\"2023-11-03T02:47:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/\"},\"wordCount\":2454,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/08\/journalisation-laravel.png\",\"keywords\":[\"laravel\",\"logging\",\"monitoring\",\"performance\",\"php\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/\",\"name\":\"Journalisation Laravel : Tout ce que vous devez savoir\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/08\/journalisation-laravel.png\",\"datePublished\":\"2022-08-29T12:05:17+00:00\",\"dateModified\":\"2023-11-03T02:47:38+00:00\",\"description\":\"La journalisation est essentielle pour surveiller la sant\u00e9 et l'efficacit\u00e9 de vos projets de d\u00e9veloppement. Apprenez \u00e0 appliquer une journalisation structur\u00e9e dans Laravel.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/08\/journalisation-laravel.png\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/08\/journalisation-laravel.png\",\"width\":1460,\"height\":730,\"caption\":\"Journalisation Laravel : Tout ce que vous devez savoir\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/fr\/sujets\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Journalisation Laravel : Tout ce que vous devez savoir\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/fr\/#website\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"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\/fr\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2\",\"name\":\"Solomon Eseme\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/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\/fr\/blog\/author\/solomoneseme\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Journalisation Laravel : Tout ce que vous devez savoir","description":"La journalisation est essentielle pour surveiller la sant\u00e9 et l'efficacit\u00e9 de vos projets de d\u00e9veloppement. Apprenez \u00e0 appliquer une journalisation structur\u00e9e dans 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\/fr\/blog\/journalisation-laravel\/","og_locale":"fr_FR","og_type":"article","og_title":"Journalisation Laravel : Tout ce que vous devez savoir","og_description":"La journalisation est essentielle pour surveiller la sant\u00e9 et l'efficacit\u00e9 de vos projets de d\u00e9veloppement. Apprenez \u00e0 appliquer une journalisation structur\u00e9e dans Laravel.","og_url":"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2022-08-29T12:05:17+00:00","article_modified_time":"2023-11-03T02:47:38+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/08\/journalisation-laravel.png","type":"image\/png"}],"author":"Solomon Eseme","twitter_card":"summary_large_image","twitter_description":"La journalisation est essentielle pour surveiller la sant\u00e9 et l'efficacit\u00e9 de vos projets de d\u00e9veloppement. Apprenez \u00e0 appliquer une journalisation structur\u00e9e dans Laravel.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/08\/journalisation-laravel.png","twitter_creator":"@kaperskyguru","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Solomon Eseme","Dur\u00e9e de lecture estim\u00e9e":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/"},"author":{"name":"Solomon Eseme","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2"},"headline":"Journalisation Laravel : Tout ce que vous devez savoir","datePublished":"2022-08-29T12:05:17+00:00","dateModified":"2023-11-03T02:47:38+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/"},"wordCount":2454,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/08\/journalisation-laravel.png","keywords":["laravel","logging","monitoring","performance","php"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/","url":"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/","name":"Journalisation Laravel : Tout ce que vous devez savoir","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/08\/journalisation-laravel.png","datePublished":"2022-08-29T12:05:17+00:00","dateModified":"2023-11-03T02:47:38+00:00","description":"La journalisation est essentielle pour surveiller la sant\u00e9 et l'efficacit\u00e9 de vos projets de d\u00e9veloppement. Apprenez \u00e0 appliquer une journalisation structur\u00e9e dans Laravel.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/08\/journalisation-laravel.png","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/08\/journalisation-laravel.png","width":1460,"height":730,"caption":"Journalisation Laravel : Tout ce que vous devez savoir"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/journalisation-laravel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/fr\/sujets\/laravel\/"},{"@type":"ListItem","position":3,"name":"Journalisation Laravel : Tout ce que vous devez savoir"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/fr\/#website","url":"https:\/\/kinsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","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\/fr\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2","name":"Solomon Eseme","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/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\/fr\/blog\/author\/solomoneseme\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/60864","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/users\/193"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=60864"}],"version-history":[{"count":12,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/60864\/revisions"}],"predecessor-version":[{"id":61537,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/60864\/revisions\/61537"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/60864\/translations\/en"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/60864\/translations\/jp"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/60864\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/60864\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/60864\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/60864\/translations\/de"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/60864\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/60864\/translations\/es"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/60864\/translations\/dk"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/60864\/translations\/se"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/60864\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/60900"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=60864"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=60864"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=60864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}