Utiliser Monolog-MySQL dans une class

Par jouvrard, il y a 7 ans


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, il y a 7 ans

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ù. :)