Bonjour,

J'utilise wazaari/monolog-mysql (https://packagist.org/packages/wazaari/monolog-mysql) pour mon système de log. Pas de problème il fonctionne très bien, j'ai un viewer, etc...
Je voudrais par contre créer des enregistrements à partir de class que j'ai créée mais je ne voias pas comment faire...

//Import class
use MySQLHandler\MySQLHandler;

//Create MysqlHandler
$mySQLHandler = new MySQLHandler($pdo, "log", array('username', 'userid'), \Monolog\Logger::DEBUG);

//Create logger
$logger = new \Monolog\Logger($context);
$logger->pushHandler($mySQLHandler);

//Now you can use the logger, and further attach additional information
$logger->addWarning("This is a great message, woohoo!", array('username'  => 'John Doe', 'userid'  => 245));

Je ne me vois pas refaire tout ça danc chaque classe où je souhaite l'utiliser...

Par avance, merci!

1 réponse


jouvrard
Auteur

Histoire de continuer à chercher j'ai fait une petite class toute bête avec variables statice: logger et mySQLHandler que j'initialise dans mon index:

namespace App;

class logInstance
{
    public static $logger;
    public static $mySQLHandler;
}

Dans "index.php":

\App\logInstance::$mySQLHandler = new MySQLHandler($dbh, "log", array('context'), \Monolog\Logger::DEBUG);
\App\logInstance::$logger = new \Monolog\Logger('log');

Et lorsque je veux créer une entrée de log à partir d'une autre classe, je fais comme ça:

logInstance::$logger->pushHandler(logInstance::$mySQLHandler);
logInstance::$logger->addInfo(
            'Un message informatif',
            array('context' => '{"MsgErreur": "Un test de test..."}')
        );

Ca marche mais je suppose que vous avez une méthode beaucoup plus "propre" que ça, et je suis donc preneur au cas où. :)