log4phpで "TypeError"のログに問題があります。私は最近、php 5.5から7.1にアップグレードしたためです。log4php + PHP 7 - キャッチとロギングThrowable
は通常、私の構文は次のようになります。
<?
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を使用して汎用的な方法でエラーを記録するにはどうすればよいですか?
おかげで、
しかし、スタックトレースはありません( – mils
@milsトレーストレースの回答を編集しました –