15 Les Bases de Laravel 11 : Logging

Anis MarrouchiAI Bot
Par Anis Marrouchi & AI Bot ·

Chargement du lecteur de synthèse vocale...

Maitrisez les essentiels du logging dans Laravel 11 avec ce guide complet. Ameliorez les capacites de surveillance et de debogage de votre application.

Configuration

Toutes les options de configuration qui controlent le comportement de logging de votre application sont stockees dans le fichier de configuration config/logging.php. Ce fichier vous permet de configurer les canaux de log de votre application. Par defaut, Laravel utilise le canal stack pour agreger plusieurs canaux de log en un seul canal.

// config/logging.php
return [
    'default' => env('LOG_CHANNEL', 'stack'),
    'channels' => [
        'stack' => [
            'driver' => 'stack',
            'channels' => ['single', 'slack'],
        ],
        // Autres configurations de canaux...
    ],
];

Pilotes de Canaux Disponibles

Chaque canal de log est alimente par un "pilote". Les pilotes de canaux de log suivants sont disponibles dans chaque application Laravel :

  • single : Un logger base sur un fichier unique ou un chemin.
  • daily : Un gestionnaire de fichiers rotatif qui tourne quotidiennement.
  • slack : Envoie les messages de log a Slack.
  • syslog : Envoie les messages de log au syslog.
  • errorlog : Envoie les messages de log au log d'erreurs systeme.
  • custom : Utilise une usine specifiee pour creer un canal.
// config/logging.php
return [
    'channels' => [
        'single' => [
            'driver' => 'single',
            'path' => storage_path('logs/laravel.log'),
            'level' => 'debug',
        ],
        'slack' => [
            'driver' => 'slack',
            'url' => env('LOG_SLACK_WEBHOOK_URL'),
            'username' => 'Laravel Log',
            'emoji' => ':boom:',
            'level' => 'critical',
        ],
    ],
];

Ecrire des Messages de Log

Vous pouvez ecrire des informations dans les logs en utilisant la facade Log. Laravel fournit les huit niveaux de logging definis dans la specification RFC 5424 : emergency, alert, critical, error, warning, notice, info et debug.

use Illuminate\Support\Facades\Log;
 
Log::emergency('Message d\'urgence');
Log::alert('Message d\'alerte');
Log::critical('Message critique');
Log::error('Message d\'erreur');
Log::warning('Message d\'avertissement');
Log::notice('Message de notice');
Log::info('Message d\'information');
Log::debug('Message de debug');

Informations Contextuelles

Un tableau de donnees contextuelles peut etre passe aux methodes de log. Ces donnees contextuelles seront formatees et affichees avec le message de log.

use Illuminate\Support\Facades\Log;
 
Log::info('L\'utilisateur {id} a echoue a se connecter.', ['id' => $user->id]);

Vous pouvez egalement partager des informations contextuelles sur tous les canaux de logging en utilisant la methode Log::shareContext.

use Illuminate\Support\Facades\Log;
 
Log::shareContext(['request_id' => $requestId]);

Personnaliser les Canaux de Log

Vous pouvez personnaliser Monolog pour les canaux en definissant un tableau tap dans la configuration du canal. Ce tableau doit contenir une liste de classes qui peuvent modifier l'instance Monolog.

// config/logging.php
return [
    'channels' => [
        'single' => [
            'driver' => 'single',
            'tap' => [App\Logging\CustomizeFormatter::class],
            'path' => storage_path('logs/laravel.log'),
            'level' => 'debug',
        ],
    ],
];

Definissez la classe qui personnalisera votre instance Monolog :

namespace App\Logging;
 
use Monolog\Formatter\LineFormatter;
use Monolog\Logger;
 
class CustomizeFormatter
{
    public function __invoke(Logger $logger)
    {
        foreach ($logger->getHandlers() as $handler) {
            $handler->setFormatter(new LineFormatter(
                '[%datetime%] %channel%.%level_name%: %message% %context% %extra%'
            ));
        }
    }
}

Conclusion

Comprendre le systeme de logging de Laravel est essentiel pour surveiller et deboguer votre application. En configurant et personnalisant les canaux de log, vous pouvez vous assurer que les informations critiques sont enregistrees et facilement accessibles.

Pour plus d'informations detaillees, consultez la documentation officielle du Logging Laravel 11.


Vous voulez lire plus de tutoriels? Découvrez notre dernier tutoriel sur Contrôle Vocal pour Cline : VS Code + MCP ElevenLabs.

Discutez de votre projet avec nous

Nous sommes ici pour vous aider avec vos besoins en développement Web. Planifiez un appel pour discuter de votre projet et comment nous pouvons vous aider.

Trouvons les meilleures solutions pour vos besoins.

Articles connexes

13 Les Bases de Laravel 11 : Validation

Apprenez les bases de la validation des donnees dans Laravel 11 avec un guide professionnel et informatif. Ce tutoriel couvre la definition des routes, la creation des controleurs et l'implementation de la logique de validation.

15 min read·