php回复通知,记录PHP通知

该博客介绍了如何在Slim框架中配置错误日志记录,确保所有错误,包括Notice,被记录到系统日志中。通过设置error_reporting,display_errors和log_errors等PHP配置,并使用syslog函数,开发者可以将错误信息详细地写入系统日志,同时提供自定义的错误处理器来处理不同类型的错误和异常,如notFoundHandler和notAllowedHandler。
摘要由CSDN通过智能技术生成

使用Slim时,所有错误都会正确记录,但会注意到

Notice: Undefined offset: 747 in /var/www/App.php on line 54

直到脚本结束才显示。当它们发生时,如何将它们记录到系统日志中?

error_reporting(E_ALL);

ini_set('display_startup_errors', 1);

ini_set("log_errors", 1);

ini_set('display_errors', 1);

openlog('PublicAPI', LOG_CONS | LOG_NDELAY | LOG_PID, LOG_USER | LOG_PERROR);

require '../vendor/autoload.php';

use \Psr\Http\Message\ServerRequestInterface as Request;

use \Psr\Http\Message\ResponseInterface as Response;

$app = new \Slim\App([

'displayErrorDetails'=>true,

'settings' => parse_ini_file(__DIR__.'/../config.ini', true, INI_SCANNER_TYPED)

]);

$c = $app->getContainer();

$c['errorHandler'] = function ($c) {

return function ($request, $response, $e) use ($c) {

syslog(LOG_ERR, "Slim errorHandler: {$e->getFile()} ({$e->getline()}): {$e->getMessage()} ({$e->getCode()})");

return $c['response']->withJson(['message'=>'Server Error'],500);

};

};

$c['notFoundHandler'] = function ($c) {

return function ($request, $response) use ($c) {

syslog(LOG_ERR, 'Slim notFoundHandler error handler');

return $c['response']->withJson(['message'=>'Page not found'],404);

};

};

$c['notAllowedHandler'] = function ($c) {

return function ($request, $response, $methods) use ($c) {

$uri=$request->getUri();

$path=$uri->getPath();

syslog(LOG_ERR, "Slim notAllowedHandler error handler. $uri $path Method must be one of: " . implode(', ', $methods));

return $c['response']

->withHeader('Allow', implode(', ', $methods))

->withJson(['message'=>'Method must be one of: ' . implode(', ', $methods)],405);

};

};

$c['phpErrorHandler'] = function ($c) {

return function ($request, $response, $e) use ($c) {

$msg="Slim phpErrorHandler: {$e->getFile()} ({$e->getline()}): {$e->getMessage()} ({$e->getCode()})";

syslog(LOG_ERR, $msg);

return $c['response']->withJson(['message'=>$msg],500);

};

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值