lesage
lesage 480 XP
a posé

Customisation des Logs dans Laravel 11

Bonjour, j'utilise Laravel 11, j'essaie d'implémenté une arborescence de logs pour mon aplli Laravel similaire à ceci : storage/logs/2024/05/09/ophtalmo_11-2024-05-09.log

Voici le chanel des logs que j'ai rajouté dans config/logging.php :

'custom' => [
'driver' => 'single',
'path' => storage_path('logs/' . date('Y/m/d') . '/ophtalmo_' . date('H') . '-' . date('Y-m-d') . '.log'),
'level' => 'debug',
],

mon .env :

LOG_CHANNEL=custom

J'ai creer un provider LogServiceProvider.php :

<?php
 
namespace App\Providers;
 
use Illuminate\Support\Facades\File;
use Illuminate\Support\ServiceProvider;
 
class LogServiceProvider extends ServiceProvider
{
/**
* Register services.
*/
public function register(): void
{
//
}
 
/**
* Bootstrap services.
*/
public function boot(): void
{
$logPath = storage_path('logs/' . date('Y/m/d'));
if (!File::exists($logPath)) {
File::makeDirectory($logPath, 0755, true);
}
}
}

le boostrap/providers.php :

<?php
 
return [
App\Providers\AppServiceProvider::class,
App\Providers\LogServiceProvider::class,
];
russeloken
a répondu
Meilleure réponse

Bonjour chef Voici ce que je te propose crée une classe CustomLogger.php

je precise que pour moi l'approche avec une class Log personnalisée me semble plus propre

Dans ton fichier config/logging.php

si tu as une interrogation concernant le le faite que 'driver' => 'monolog' voici le lien de la doc

Tu maintiens ton LOG_CHANNEL=custom A mon avis pas besoin d'un log provider comme tu le fais

je pense qu'avec ces etapes tu pourras gerer ton probleme.

lesage
lesage 480 XP
a répondu

Merci, ça marches très bien,

Il faut Se connecter ou Créer un compte pour participer à cette conversation.