jzgl_lib.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. function log_debug( $msg ){
  3. if (!APP_DEBUG) return;
  4. static $time_cache = 0, $msg_cache = '';
  5. if (log_cache($time_cache, $msg_cache, $msg)) {
  6. return;
  7. }
  8. $logger = \Jiaruan\FileLogger::getInstance(SOLUTION_LOG_PATH . '/jzgl/');
  9. $logger->log('',\Jiaruan\FileLogger::DEBUG,$msg);
  10. }
  11. function log_error( $msg ){
  12. static $time_cache = 0, $msg_cache = '';
  13. if (log_cache($time_cache, $msg_cache, $msg)) {
  14. return;
  15. }
  16. $logger = \Jiaruan\FileLogger::getInstance(SOLUTION_LOG_PATH . '/jzgl/');
  17. $logger->log('',\Jiaruan\FileLogger::ERROR,$msg);
  18. }
  19. function log_info( $msg ){
  20. if (!APP_DEBUG) return;
  21. static $time_cache = 0, $msg_cache = '';
  22. if (log_cache($time_cache, $msg_cache, $msg)) {
  23. return;
  24. }
  25. $logger = \Jiaruan\FileLogger::getInstance(SOLUTION_LOG_PATH . '/jzgl/');
  26. $logger->log('',\Jiaruan\FileLogger::INFO,$msg);
  27. }
  28. function createProtoClass( $type ){
  29. static $instances = array();
  30. if($instances[$type])
  31. return $instances[$type];
  32. if($type == C('协议类型_基站开机登陆')){
  33. $instances[$type] = new \Jiaruan\ProtoLogin;
  34. }
  35. else if($type == C('协议类型_基站定时心跳')){
  36. $instances[$type] = new \Jiaruan\ProtoHeartbeat;
  37. }
  38. else if($type == C('协议类型_用户布控车辆')){
  39. $instances[$type] = new \Jiaruan\ProtoMonit;
  40. }
  41. else if($type == C('协议类型_用户撤控车辆')){
  42. $instances[$type] = new \Jiaruan\ProtoUnmonit;
  43. }
  44. else if($type == C('协议类型_用户重启基站')){
  45. $instances[$type] = new \Jiaruan\ProtoReboot;
  46. }
  47. else if($type == C('协议类型_用户升级基站')){
  48. $instances[$type] = new \Jiaruan\ProtoUpgrade;
  49. }
  50. else if($type == C('协议类型_用户检查基站')){
  51. $instances[$type] = new \Jiaruan\ProtoCheck;
  52. }
  53. else if($type == C('协议类型_用户下发命令行')){
  54. $instances[$type] = new \Jiaruan\ProtoCmdLine;
  55. }
  56. else{
  57. $instances[$type] = null;
  58. }
  59. return $instances[$type];
  60. }
  61. function get_station_cityid( $mac ){
  62. $ret = MM("jms_station",'fdv2')->where(array("DeviceNumber" => $mac))->getField('CityId');
  63. return $ret == null ? 0 : $ret;
  64. }
  65. function get_vehicle_cityid( $vehicle_number ){
  66. $ret = MM("jms_vehicle",'fdv2')->where(array("DeviceNumber" => $vehicle_number))->getField('CityId');
  67. return $ret == null ? 0 : $ret;
  68. }
  69. function log_cache( &$time_cache, &$msg_cache, &$msg ){
  70. if ($time_cache == 0) {
  71. $time_cache = time();
  72. }
  73. if ($msg_cache == '') {
  74. $msg_cache = "\n";
  75. }
  76. $msg_cache .= "[" .date("H:i:s", time()) . "]" . $msg . "\n";
  77. //关闭主进程 或 日志大于15k 或 时间大于2秒 写日志到磁盘
  78. if (strpos($msg, "stop:") !== 0
  79. && strlen($msg_cache) < 1024 * 15
  80. && time() - $time_cache < 2) {
  81. return true;
  82. }
  83. $msg = $msg_cache;
  84. $msg_cache = '';
  85. $time_cache = time();
  86. return false;
  87. }