/packages/Logger/DBLogger/Managers/DBLogger.class.php

https://bitbucket.org/alexamiryan/stingle · PHP · 45 lines · 40 code · 5 blank · 0 comment · 1 complexity · ba4e0f1e8828cd1dc98909a9035d2e26 MD5 · raw file

  1. <?php
  2. class DBLogger extends Logger{
  3. const TBL_REQUEST_LOG = 'log_requests';
  4. const TBL_MIXED_LOG = 'log_mixed';
  5. public function log($name, $value){
  6. static::logCustom($name, $value);
  7. }
  8. public static function logRequest($instanceName = null){
  9. $sql = MySqlDbManager::getQueryObject($instanceName);
  10. $qb = new QueryBuilder();
  11. $qb->insert(Tbl::get('TBL_REQUEST_LOG'))
  12. ->values(array(
  13. "session_id" => session_id(),
  14. "get" => serialize($_GET),
  15. "post" => serialize($_POST),
  16. "server" => serialize($_SERVER),
  17. "cookies" => serialize($_COOKIE),
  18. "session" => serialize($_SESSION),
  19. "response" => ob_get_contents()
  20. )
  21. );
  22. $sql->exec($qb->getSQL());
  23. }
  24. public static function logCustom($name, $value){
  25. $remoteIP="";
  26. if(isset($_SERVER['REMOTE_ADDR'])){
  27. $remoteIP=$_SERVER['REMOTE_ADDR'];
  28. }
  29. $qb = new QueryBuilder();
  30. $qb->insert(Tbl::get('TBL_MIXED_LOG'))
  31. ->values(array(
  32. "session_id" => session_id(),
  33. "name" => $name,
  34. "value" => $value,
  35. "ip" => $remoteIP
  36. )
  37. );
  38. Reg::get('sql')->exec($qb->getSQL());
  39. }
  40. }