我在使用 log4php 记录“TypeError”时遇到问题。我怀疑这是因为我最近从 php 5.5 升级到了 7.1。
通常,我的语法如下所示:
<?
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);
}
}
}
?>
上面的语法会将大量信息打印到日志文件中,包括堆栈跟踪。然而,在阅读了最新的 php7 文档之后,我相信我打算处理 \Throwable 接口,以便同时捕获错误和异常(这很棒)。所以我用以下内容替换了上面的捕获:
catch (\Throwable $ex)
这仍然会为我的异常打印堆栈跟踪信息,但是当捕获到“TypeError”时,不会将任何内容打印到日志文件中。
我认为这是由于 log4php 不知道如何记录错误。如何以通用方式使用 log4php 记录错误?
谢谢,