Authored by 周少峰

add triggerError

@@ -2,23 +2,27 @@ @@ -2,23 +2,27 @@
2 2
3 namespace WebPlugin; 3 namespace WebPlugin;
4 4
  5 +use WebPlugin\UdpLog;
5 /** 6 /**
6 - * 辅助类 7 + * 异常错误日志
7 */ 8 */
8 class TriggerError 9 class TriggerError
9 { 10 {
10 public static function myErrorHandler($errno, $errstr, $errfile, $errline) 11 public static function myErrorHandler($errno, $errstr, $errfile, $errline)
11 { 12 {
  13 +// print_r(get_defined_constants());exit;
12 switch ($errno) { 14 switch ($errno) {
13 - case \Yaf\ERR\NOTFOUD\CONTROLLER:  
14 - case \Yaf\ERR\NOTFOUD\MODULE:  
15 - case \Yaf\ERR\NOTFOUD\ACTION: 15 + case \YAF\ERR\NOTFOUND\CONTROLLER:
  16 + case \YAF\ERR\NOTFOUND\MODULE:
  17 + case \YAF\ERR\NOTFOUND\ACTION:
16 header("Not Found"); 18 header("Not Found");
17 break; 19 break;
18 -  
19 default: 20 default:
20 - echo 'ehre';  
21 - echo "Unknown error type: [$errno] $errstr<br />\n"; 21 + $data['errno'] = $errno;
  22 + $data['errstr'] = $errstr;
  23 + $data['errfile'] = $errfile;
  24 + $data['errline'] = $errline;
  25 + UdpLog::triggerError('triggerError',$data);
22 break; 26 break;
23 } 27 }
24 return true; 28 return true;
@@ -17,6 +17,8 @@ namespace WebPlugin; @@ -17,6 +17,8 @@ namespace WebPlugin;
17 */ 17 */
18 class UdpLog 18 class UdpLog
19 { 19 {
  20 + //日志开关
  21 + private static $flag = true;
20 //influxdb url 22 //influxdb url
21 public static $url = 'influxdb.yohobuy.com'; 23 public static $url = 'influxdb.yohobuy.com';
22 //influxdb port 24 //influxdb port
@@ -32,6 +34,15 @@ class UdpLog @@ -32,6 +34,15 @@ class UdpLog
32 const RECORD_MODE = 'FILE';//mode: FILE | UDP 34 const RECORD_MODE = 'FILE';//mode: FILE | UDP
33 35
34 /** 36 /**
  37 + * 初始化
  38 + */
  39 + private function __construct()
  40 + {
  41 + if (self::$flag) {
  42 + return;
  43 + }
  44 + }
  45 + /**
35 * proc line and send log to influxdb 46 * proc line and send log to influxdb
36 * @param $level 47 * @param $level
37 * @param $message 48 * @param $message
@@ -158,4 +169,13 @@ class UdpLog @@ -158,4 +169,13 @@ class UdpLog
158 public static function debug($message, $meta = '') { 169 public static function debug($message, $meta = '') {
159 self::procLog(__METHOD__, $message, debug_backtrace(), $meta); 170 self::procLog(__METHOD__, $message, debug_backtrace(), $meta);
160 } 171 }
  172 +
  173 + /**
  174 + * yaf trigger error
  175 + * @param $message
  176 + * @param mixed $meta
  177 + */
  178 + public static function triggerError($message, $meta = '') {
  179 + self::procLog(__METHOD__, $message, debug_backtrace(), $meta);
  180 + }
161 } 181 }
@@ -149,27 +149,13 @@ class Bootstrap extends Bootstrap_Abstract @@ -149,27 +149,13 @@ class Bootstrap extends Bootstrap_Abstract
149 //} 149 //}
150 } 150 }
151 151
  152 + /**
  153 + * triggerError
  154 + * @param Dispatcher $dispatcher
  155 + */
152 public function _initError(Dispatcher $dispatcher) 156 public function _initError(Dispatcher $dispatcher)
153 { 157 {
154 - $dispatcher->getInstance()->setErrorHandler(array($this,"myErrorHandler"));  
155 -// $dispatcher->getInstance()->setErrorHandler(array("\\WebPlugin\\TriggerError","myErrorHandler"));  
156 - }  
157 -  
158 - public static function myErrorHandler($errno, $errstr, $errfile, $errline)  
159 - {  
160 - switch ($errno) {  
161 - case YAF_ERR_NOTFOUND_CONTROLLER:  
162 - case YAF_ERR_NOTFOUND_MODULE:  
163 - case YAF_ERR_NOTFOUND_ACTION:  
164 - header("Not Found");  
165 - break;  
166 -  
167 - default:  
168 - echo "Unknown error type: [$errno] $errstr<br />\n";  
169 - break;  
170 - }  
171 -  
172 - return true; 158 + $dispatcher->getInstance()->setErrorHandler(array("\\WebPlugin\\TriggerError","myErrorHandler"));
173 } 159 }
174 // /** 160 // /**
175 // * 初始化第三方包 161 // * 初始化第三方包