J'ai des problèmes pour consigner un "TypeError" avec log4php. Je pense que c'est parce que j'ai récemment mis à jour de php 5.5 à 7.1.log4php + PHP 7 - accrochage et journalisation Throwable
Habituellement, ma syntaxe ressemble à ceci:
<?
use Logger;
class MyClass
{
/** @var Logger */
private $logger;
function __construct(array $configParams)
{
Logger::configure('logger.xml');
$this->logger = Logger::getLogger(__CLASS__);
}
public function dostuff()
{
try
{
// ...
}
catch (Exception $ex)
{
$this->logger->error("ERROR CAUGHT", $ex);
}
}
}
?>
La syntaxe ci-dessus imprimera beaucoup d'informations dans le fichier journal, y compris une trace de la pile. Cependant, après avoir lu les derniers documents php7, je crois que je suis censé gérer l'interface \ Throwable, afin d'attraper les erreurs et les exceptions (ce qui est génial). Donc, je remplace les prises ci-dessus avec les éléments suivants:
catch (\Throwable $ex)
Cette imprime encore des informations trace pile pour mes exceptions, mais quand un « TypeError » est pris, rien est imprimé dans le fichier journal. Je suppose que cela est dû à log4php ne sachant pas comment enregistrer les erreurs.
Comment puis-je enregistrer les erreurs en utilisant log4php de manière universelle?
Merci,
Mais alors pas de pile-trace :( – mils
@mils Je suis édité répondre pour la trace de la trace –