是的,有一种方法可以通过使用set_error_handler()
:
$logger = new Monolog\\Logger( \'PHP-ERROR\' );
$logger->pushHandler(
// Configure your Monolog handler here
);
set_error_handler( function( int $errNo, string $errStr, ... $args ) use ( $logger ) {
$errorName = \'NOTICE\';
$errorLevel = Monolog\\Logger::NOTICE;
switch ( $errNo ) {
case E_USER_WARNING :
$errorName = \'WARNING\';
$errorLevel = Monolog\\Logger::WARNING;
break;
case E_USER_ERROR :
$errorName = \'ERROR\';
$errorLevel = Monolog\\Logger::ERROR;
break;
}
$errorMessage = "{$errorName} {$errStr}";
$logger->addRecord( $errorLevel, $errorMessage );
// return false if you want the default error handler to proceed
return true;
) };
这只是一个未经测试的示例,但基本上是如何将PHP错误发送到Monolog的方法。因此,您可以使用所有现有Monolog处理程序的功能。
如果您想记录自定义WordPress错误(如DB错误、HTTP错误、登录失败),您必须侦听WP API的特定挂钩,并将有关这些事件的消息委托给Monolog。
但是,如果您能够使用第三方软件包,我建议您Wonolog. 旨在将WordPress连接到Monolog的库。它的功能与上述完全相同,并为插件开发人员添加了一个舒适的API,以记录他们喜欢的任何内容。
Edit: 如果只是关于PHP错误和独白,可以使用error handler 与Monolog一起提供:
$logger = new Monolog\\Logger( \'PHP-ERROR\' );
(new ErrorHandler( $logger ) )->registerErrorHandler()