logger.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace Statistics\Modules;
  3. function logger($module, $interface, $date, $start_time, $offset, $count)
  4. {
  5. $module_str ='';
  6. foreach(\Statistics\Lib\Cache::$modulesDataCache as $mod => $interfaces)
  7. {
  8. if($mod == 'WorkerMan')
  9. {
  10. continue;
  11. }
  12. $module_str .= '<li><a href="/?fn=statistic&module='.$mod.'">'.$mod.'</a></li>';
  13. if($module == $mod)
  14. {
  15. foreach ($interfaces as $if)
  16. {
  17. $module_str .= '<li>&nbsp;&nbsp;<a href="/?fn=statistic&module='.$mod.'&interface='.$if.'">'.$if.'</a></li>';
  18. }
  19. }
  20. }
  21. $log_data_arr = getStasticLog($module, $interface, $start_time ,$offset, $count);
  22. unset($_GET['fn'], $_GET['ip'], $_GET['offset']);
  23. $log_str = '';
  24. foreach($log_data_arr as $address => $log_data)
  25. {
  26. list($ip, $port) = explode(':', $address);
  27. $log_str .= $log_data['data'];
  28. $_GET['ip'][] = $ip;
  29. $_GET['offset'][] = $log_data['offset'];
  30. }
  31. $log_str = nl2br(str_replace("\n", "\n\n", $log_str));
  32. $next_page_url = http_build_query($_GET);
  33. $log_str .= "</br><center><a href='/?fn=logger&$next_page_url'>下一页</a></center>";
  34. include ST_ROOT . '/Views/header.tpl.php';
  35. include ST_ROOT . '/Views/log.tpl.php';
  36. include ST_ROOT . '/Views/footer.tpl.php';
  37. }
  38. function getStasticLog($module, $interface , $start_time, $offset = '', $count = 10)
  39. {
  40. $ip_list = (!empty($_GET['ip']) && is_array($_GET['ip'])) ? $_GET['ip'] : \Statistics\Lib\Cache::$ServerIpList;
  41. $offset_list = (!empty($_GET['offset']) && is_array($_GET['offset'])) ? $_GET['offset'] : array();
  42. $port = \Statistics\Config\Config::$ProviderPort;
  43. $request_buffer_array = array();
  44. foreach($ip_list as $key=>$ip)
  45. {
  46. $offset = isset($offset_list[$key]) ? $offset_list[$key] : 0;
  47. $request_buffer_array["$ip:$port"] = json_encode(array('cmd'=>'get_log', 'module'=>$module, 'interface'=>$interface, 'start_time'=>$start_time, 'offset'=>$offset, 'count'=>$count));
  48. }
  49. $read_buffer_array = multiRequest($request_buffer_array);
  50. ksort($read_buffer_array);
  51. foreach($read_buffer_array as $address => $buf)
  52. {
  53. list($ip, $port) = explode(':', $address);
  54. $body_data = json_decode(trim($buf), true);
  55. $log_data = isset($body_data['data']) ? $body_data['data'] : '';
  56. $offset = isset($body_data['offset']) ? $body_data['offset'] : 0;
  57. $read_buffer_array[$address] = array('offset'=>$offset,'data'=>$log_data);
  58. }
  59. return $read_buffer_array;
  60. }