电脑安全

您当前的位置:主页 > 电脑安全 >

用PHP构建一个简易监视引擎(三)-网络编程

来源:[db:来源]标题:   进程    编辑:电脑技术全能网 时间:2019-09-18 18:00

原标题:用PHP构建一个简易监视引擎(三)-网络编程
   五. 示例ServiceLogger过程  上面是一个示例ServiceLogger过程。当一个效劳停用时,它担任把一个电子邮件发送给一个待命职员:class EmailMe_ServiceLogger implements ServiceLogger { public function log_service_event(ServiceCheck$service) {  if($service->current_status ==ServiceCheck::FAILURE) {   $message = "Problem with{$service->description()}rn";   mail('oncall@example.com', 'Service Event',$message);   if($service->consecutive_failures() > 5) {    mail('oncall_backup@example.com', 'Service Event', $message);   }  } } public function log_current_status(ServiceCheck$service){  return; }}  如果持续失利五次,那末该过程还把一个新闻发送到一个备份地点。重视,它并没有完成一个故意义的log_current_status()方式。  不管何时象以下如许转变一个效劳的状况,你都应当完成一个写向PHP过错日记的ServiceLogger过程:class ErrorLog_ServiceLogger implements ServiceLogger { public function log_service_event(ServiceCheck$service) {  if($service->current_status() !==$service->previous_status()) {   if($service->current_status() ===ServiceCheck::FAILURE) {    $status = 'DOWN';   }   else {    $status = 'UP';   }   error_log("{$service->description()} changed status to $status");  } } public function log_current_status(ServiceCheck$service) {  error_log("{$service->description()}: $status"); }}  该log_current_status()方式象征着,如果过程发送一个SIGUSR1信号,它将把其完全确当前状况复制到你的PHP过错日记中。    该引擎应用以下的一个设置文件:<config> <loggers>  <logger>   <id>errorlog</id>   <class>ErrorLog_ServiceLogger</class>  </logger>  <logger>   <id>emailme</id>   <class>EmailMe_ServiceLogger</class>  </logger> </loggers> <services>  <service>   <class>HTTP_ServiceCheck</class>   <params>    <description>OmniTI HTTP Check</description>    <url>http://www.omniti.com</url>    <timeout>30</timeout>    <frequency>900</frequency>   </params>   <loggers>    <logger>errorlog</logger>    <logger>emailme</logger>