PageRenderTime 55ms CodeModel.GetById 26ms RepoModel.GetById 0ms app.codeStats 0ms

/includes/init/logger.php

https://bitbucket.org/baruffaldi/website-insaneminds
PHP | 102 lines | 54 code | 14 blank | 34 comment | 14 complexity | f3a6ce22d82b8aaa66bd5ea38004618b MD5 | raw file
  1. <?php
  2. /**
  3. * Loggers
  4. *
  5. * @version 0.3
  6. * @package StreamingAPI
  7. * @author Filippo Baruffaldi
  8. * @email filippo.baruffaldi@oneitalia.it
  9. * @last-revisioner Filippo Baruffaldi
  10. */
  11. require_once ZENDLIBPATH . 'Log.php';
  12. require_once ZENDLIBPATH . 'Exception.php';
  13. require_once ZENDLIBPATH . 'Log' . DIRECTORY_SEPARATOR . 'Exception.php';
  14. require_once ZENDLIBPATH . 'Log' . DIRECTORY_SEPARATOR . 'Writer' . DIRECTORY_SEPARATOR . 'Null.php';
  15. require_once ZENDLIBPATH . 'Log' . DIRECTORY_SEPARATOR . 'Writer' . DIRECTORY_SEPARATOR . 'Stream.php';
  16. require_once ZENDLIBPATH . 'Log' . DIRECTORY_SEPARATOR . 'Writer' . DIRECTORY_SEPARATOR . 'Db.php';
  17. //***************************************************//
  18. //****************** Log Handlers *******************//
  19. //***************************************************//
  20. //*** do I have to log ??
  21. //************************
  22. define( '__LOG__', ( $Request->type == 'php' && __DB__ ) );
  23. //*** Log Files
  24. //**************
  25. $accessLogFile = LOGSPATH . 'access_' . date( 'Ym' ) . '.log';
  26. $errorsLogFile = LOGSPATH . 'errors_' . date( 'Ym' ) . '.log';
  27. $soapLogFile = LOGSPATH . 'soap_' . date( 'Ym' ) . '.log';
  28. //*** Database Writer
  29. //********************
  30. $loggerDbColumnsMap = array( 'ip_local' => 'ip_local',
  31. 'ip_remote' => 'ip_remote',
  32. 'msisdn' => 'msisdn',
  33. 'partyid' => 'partyid',
  34. 'useragent' => 'useragent',
  35. 'category' => 'category',
  36. 'method' => 'method',
  37. 'priority' => 'priority',
  38. 'priorityName' => 'priorityname',
  39. 'message' => 'message' );
  40. if ( __LOG__ ) $loggerDbWriter = new Zend_Log_Writer_Db( $db, "{$dbParams['logsdbname']}.{$dbParams['tableprefix']}{$dbParams['table_ad_ev_log']}_$serverId", $columnMapping);
  41. else $loggerDbWriter = new Zend_Log_Writer_Null( $db, "{$dbParams['logsdbname']}.{$dbParams['tableprefix']}{$dbParams['table_ad_ev_log']}_$serverId", $columnMapping);
  42. //*** Stream Writers
  43. //*******************
  44. if ( __LOG__ ) $accessWriter = new Zend_Log_Writer_Stream( $accessLogFile );
  45. else $accessWriter = new Zend_Log_Writer_Null( $accessLogFile );
  46. if ( __LOG__ ) $errorsWriter = new Zend_Log_Writer_Stream( $errorsLogFile );
  47. else $errorsWriter = new Zend_Log_Writer_Null( $errorsLogFile );
  48. if ( __LOG__ ) $soapWriter = new Zend_Log_Writer_Stream( $soapLogFile );
  49. else $soapWriter = new Zend_Log_Writer_Null( $soapLogFile );
  50. //*** Define Formatters
  51. //**********************
  52. $accessFormat = new Zend_Log_Formatter_Simple( "[%timestamp%][%ip_local%][%ip_remote%][%msisdn%][%partyid%][%useragent%][%category%][%method%][%priority%][%priorityName%][%whois%]: %message%" . PHP_EOL );
  53. $errorsFormat = new Zend_Log_Formatter_Simple( "[%timestamp%][%ip_local%][%ip_remote%][%msisdn%][%partyid%][%useragent%][%category%][%method%][%priority%][%priorityName%][%whois%]: %message%" . PHP_EOL );
  54. $soapFormat = new Zend_Log_Formatter_Simple( "[%timestamp%][%ip_local%][%ip_remote%][%msisdn%][%partyid%][%useragent%][%category%][%method%][%priority%][%priorityName%][%whois%]: %message%" . PHP_EOL );
  55. //*** Set Writers Formats
  56. //************************
  57. $accessWriter->setFormatter( $accessFormat );
  58. $errorsWriter->setFormatter( $errorsFormat );
  59. $soapWriter->setFormatter( $soapFormat );
  60. //*** Loggers
  61. //************
  62. $accessLogger = new Zend_Log( $accessWriter );
  63. $errorsLogger = new Zend_Log( $errorsWriter );
  64. $soapLogger = new Zend_Log( $soapWriter );
  65. // We want all loggers inside an array to easily set all event items
  66. $loggers = array( $accessLogger, $errorsLogger, $soapLogger );
  67. //*** Set Loggers Items
  68. //**********************
  69. foreach ( $loggers as $logz => $log )
  70. {
  71. $log->setEventItem( 'timestamp', date( 'Y.m.d-H:i:s' ) );
  72. $log->setEventItem( 'ip_local', $_SERVER['SERVER_ADDR'] );
  73. $log->setEventItem( 'ip_remote', $_SERVER['REMOTE_ADDR'] );
  74. $log->setEventItem( 'msisdn', var_export( $_SERVER['HTTP_X_H3G_MSISDN'], true ) );
  75. $log->setEventItem( 'partyid', var_export( $_SERVER['HTTP_X_H3G_PARTY_ID'], true ) );
  76. $log->setEventItem( 'useragent', DSS::getUAPattern( $_SERVER['HTTP_USER_AGENT'] ) );
  77. $log->setEventItem( 'category', $Request->category );
  78. $log->setEventItem( 'method', $Request->action );
  79. $log->setEventItem( 'whois', ( array_key_exists( $_SERVER['HTTP_X_H3G_MSISDN'] , $MsISDNtoUsers ) ) ? $MsISDNtoUsers[$_SERVER['HTTP_X_H3G_MSISDN']] : ( gethostbyaddr( $_SERVER['REMOTE_ADDR'] ) != $_SERVER['REMOTE_ADDR'] ) ? gethostbyaddr( $_SERVER['REMOTE_ADDR'] ) : NULL );
  80. }
  81. //*** Set Database Writer
  82. //************************
  83. $accessLogger->addWriter( $loggerDbWriter );
  84. $errorsLogger->addWriter( $loggerDbWriter );
  85. //***************************************************//
  86. //****************** ------------ *******************//
  87. //***************************************************//
  88. if ( !empty( $_SERVER['HTTP_REFERER'] ) && $_SERVER['SERVER_ADDR'] != '127.0.0.1' ) $accessLogger->log( 'Incoming connection from: ' . $_SERVER['HTTP_REFERER'], 6 );