WfsLogger.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. Lib::loadClass('Request');
  3. class Api_WfsLogger {
  4. protected $_reqId;
  5. protected $_logFile;
  6. public function __construct() {
  7. $this->_logFile = ('production' == V::get('P5_ENV', 'production', $_SERVER)) ? "/tmp/wfs.log" : "/tmp/dev-wfs.log";
  8. if (!is_writable($this->_logFile)) {
  9. $fp = @fopen($this->_logFile, "w");
  10. if ($fp === false) return;
  11. @fclose($fp);
  12. }
  13. //unlink($this->_logFile);// TODO: DBG clear log
  14. $this->_reqId = substr(uniqid(), 7);
  15. }
  16. public function reqDBG($request) {
  17. $reqLog = "{$_SERVER['REQUEST_METHOD']} " . Request::getHostUri() . "{$_SERVER['REQUEST_URI']}";
  18. if ($_SERVER['REQUEST_METHOD'] == 'POST') $reqLog .= "\n------------ POST:\n" . substr(Request::getRequestBody(), 0, 1000);
  19. // if (!empty($request)) $reqLog .= "\n------------ request: " . substr(json_encode($request), 0, 1000);
  20. $this->DBG($reqLog);
  21. }
  22. public function DBG($reqLog, $lineNr = null, $funName = null, $className = null) {
  23. $codePos = ($lineNr)? $lineNr : '';
  24. if (null !== $funName && null !== $className) $codePos = "{$className}::{$funName}():{$lineNr}";
  25. if (null !== $funName && null === $className) $codePos = "{$funName}():{$lineNr}";
  26. if ($codePos) $codePos = "\t{$codePos}";
  27. $logMsg = date("Y-m-d H:i:s") . "\tReq:{$this->_reqId}{$codePos}\t{$reqLog}\n";
  28. error_log($logMsg, 3, $this->_logFile);
  29. }
  30. }