Authored by 周少峰

add triggerError

... ... @@ -2,23 +2,27 @@
namespace WebPlugin;
use WebPlugin\UdpLog;
/**
* 辅助类
* 异常错误日志
*/
class TriggerError
{
public static function myErrorHandler($errno, $errstr, $errfile, $errline)
{
// print_r(get_defined_constants());exit;
switch ($errno) {
case \Yaf\ERR\NOTFOUD\CONTROLLER:
case \Yaf\ERR\NOTFOUD\MODULE:
case \Yaf\ERR\NOTFOUD\ACTION:
case \YAF\ERR\NOTFOUND\CONTROLLER:
case \YAF\ERR\NOTFOUND\MODULE:
case \YAF\ERR\NOTFOUND\ACTION:
header("Not Found");
break;
default:
echo 'ehre';
echo "Unknown error type: [$errno] $errstr<br />\n";
$data['errno'] = $errno;
$data['errstr'] = $errstr;
$data['errfile'] = $errfile;
$data['errline'] = $errline;
UdpLog::triggerError('triggerError',$data);
break;
}
return true;
... ...
... ... @@ -17,6 +17,8 @@ namespace WebPlugin;
*/
class UdpLog
{
//日志开关
private static $flag = true;
//influxdb url
public static $url = 'influxdb.yohobuy.com';
//influxdb port
... ... @@ -32,6 +34,15 @@ class UdpLog
const RECORD_MODE = 'FILE';//mode: FILE | UDP
/**
* 初始化
*/
private function __construct()
{
if (self::$flag) {
return;
}
}
/**
* proc line and send log to influxdb
* @param $level
* @param $message
... ... @@ -158,4 +169,13 @@ class UdpLog
public static function debug($message, $meta = '') {
self::procLog(__METHOD__, $message, debug_backtrace(), $meta);
}
/**
* yaf trigger error
* @param $message
* @param mixed $meta
*/
public static function triggerError($message, $meta = '') {
self::procLog(__METHOD__, $message, debug_backtrace(), $meta);
}
}
\ No newline at end of file
... ...
... ... @@ -149,27 +149,13 @@ class Bootstrap extends Bootstrap_Abstract
//}
}
/**
* triggerError
* @param Dispatcher $dispatcher
*/
public function _initError(Dispatcher $dispatcher)
{
$dispatcher->getInstance()->setErrorHandler(array($this,"myErrorHandler"));
// $dispatcher->getInstance()->setErrorHandler(array("\\WebPlugin\\TriggerError","myErrorHandler"));
}
public static function myErrorHandler($errno, $errstr, $errfile, $errline)
{
switch ($errno) {
case YAF_ERR_NOTFOUND_CONTROLLER:
case YAF_ERR_NOTFOUND_MODULE:
case YAF_ERR_NOTFOUND_ACTION:
header("Not Found");
break;
default:
echo "Unknown error type: [$errno] $errstr<br />\n";
break;
}
return true;
$dispatcher->getInstance()->setErrorHandler(array("\\WebPlugin\\TriggerError","myErrorHandler"));
}
// /**
// * 初始化第三方包
... ...