Create logger.php
This commit is contained in:
parent
333ee169d6
commit
ea9698bbbc
16
system/logger.php
Normal file
16
system/logger.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php/** * @file logger.php * @date 2018-01-10 * @author Go Namhyeon <gnh1201@gmail.com> * @brief Logger for VSPF */class Logger { public function sendMessage($message, $component = "web", $program = "unknown", $method="syslog") { switch($method) { case "syslog": $this->sendMessageBySyslog($message, $component, $program); break; case "http": $this->sendMessageByHttp($message, $component, $program); break; default: $this->sendMessageBySyslog($message, $component, $program); } }
|
||||
// send to loggy via HTTP (loggy.com) protected function sendMessageByHttp($message, $component = "web", $program = "unknown") { $data = $this->getEventData();
|
||||
foreach(explode("\n", $message) as $line) { $dataByLine = $data; $dataByLine["message"] = $line; $dataMessage = ""; foreach($dataByLine as $k=>$v) { $dataMessage .= "{$k}={$v};"; } $syslog_message = "<22>" . date('M d H:i:s ') . $program . ' ' . $component . ': ' . $dataMessage;
|
||||
$ch = curl_init(); $logTicket = "aHR0cDovL2xvZ3MtMDEubG9nZ2x5LmNvbS9pbnB1dHMvMDE0YzVkZDYtNDI0YS00MzIzLWJlNjUtNDhiNDZmMTZkYjU1L3RhZy9odHRwLw=="; curl_setopt($ch, CURLOPT_URL, base64_decode($logTicket)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array( "weblog" => $syslog_message, "detail" => $dataByLine ))); curl_setopt($ch, CURLOPT_POST, 1);
|
||||
$headers = array(); $headers[] = "Content-Type: application/x-www-form-urlencoded"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||
$result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close($ch); } }
|
||||
// send to papertail via Syslog (papertail.com) protected function sendMessageBySyslog($message, $component = "web", $program = "unknown") { $logTicket = "bG9nczYucGFwZXJ0cmFpbGFwcC5jb206NDI5ODY="; $logInfo = base64_decode($logTicket); list($logHost, $logPort) = explode(':', $logInfo);
|
||||
$data = $this->getEventData();
|
||||
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); foreach(explode("\n", $message) as $line) { $dataByLine = $data; $dataByLine["message"] = $line; $dataMessage = json_encode($dataByLine);
|
||||
$syslog_message = "<22>" . date('M d H:i:s ') . $program . ' ' . $component . ': ' . $dataMessage; if(!@socket_sendto($sock, $syslog_message, strlen($syslog_message), 0, $logHost, $logPort)) { $this->sendMessage($message, $component, $program, "http"); } } socket_close($sock); }
|
||||
protected function getEventData() { $data = array( "time" => date("M j G:i:s Y"), "server" => $this->getServerAddr(), "hostname" => $this->getHostname(), "client" => $this->getClientAddr(), "agent" => getenv('HTTP_USER_AGENT'), "referrer" => getenv('HTTP_REFERER'), "query" => getenv('QUERY_STRING'), "self" => $_SERVER['PHP_SELF'], "method" => $_SERVER['REQUEST_METHOD'] ); return $data; } protected function getClientAddr() { $addr = ''; if (isset($_SERVER['HTTP_CLIENT_IP'])) $addr = $_SERVER['HTTP_CLIENT_IP']; else if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $addr = $_SERVER['HTTP_X_FORWARDED_FOR']; else if(isset($_SERVER['HTTP_X_FORWARDED'])) $addr = $_SERVER['HTTP_X_FORWARDED']; else if(isset($_SERVER['HTTP_X_CLUSTER_CLIENT_IP'])) $addr = $_SERVER['HTTP_X_CLUSTER_CLIENT_IP']; else if(isset($_SERVER['HTTP_FORWARDED_FOR'])) $addr = $_SERVER['HTTP_FORWARDED_FOR']; else if(isset($_SERVER['HTTP_FORWARDED'])) $addr = $_SERVER['HTTP_FORWARDED']; else if(isset($_SERVER['REMOTE_ADDR'])) $addr = $_SERVER['REMOTE_ADDR']; else $addr = 'UNKNOWN';
|
||||
return $addr; }
|
||||
protected function getServerAddr() { $addr = ''; if(isset($_SERVER['SERVER_ADDR']) && isset($_SERVER['SERVER_PORT'])) { $addr = $_SERVER['SERVER_ADDR'] . ':' . $_SERVER['SERVER_PORT']; } else if(isset($_SERVER['SERVER_ADDR'])) { $addr = $_SERVER['SERVER_ADDR']; } else if(isset($_SERVER['LOCAL_ADDR'])) { $addr = $_SERVER['LOCAL_ADDR']; } else if(function_exists('gethostname') && function_exists('gethostbyname')) { $host = gethostname(); $addr = gethostbyname($host); } else { $addr = 'UNKNOWN'; }
|
||||
return $addr; }
|
||||
protected function getHostname() { $host = ''; if(isset($_SERVER['HTTP_HOST'])) { $host = $_SERVER['HTTP_HOST']; } else if(isset($_SERVER['SERVER_NAME'])) { $host = $_SERVER['SERVER_NAME']; } else if(function_exists('gethostname')) { $host = gethostname(); } else { $host = 'UNKNOWN'; } return $host; } protected function isAvailable($func) { if (ini_get('safe_mode')) return false; $disabled = ini_get('disable_functions'); if ($disabled) { $disabled = explode(',', $disabled); $disabled = array_map('trim', $disabled); return !in_array($func, $disabled); } return true; }}
|
||||
// create logger instance$logger = new Logger();
|
Loading…
Reference in New Issue
Block a user