Example #1
0
 /**
  * Configure logging for Eventum application.
  *
  * This can be used like:
  *
  * Logger::api()->addError('Sent to $api Logger instance');
  * Logger::application()->addError('Sent to $application Logger instance');
  */
 public static function initialize()
 {
     // Configure it use Eventum timezone
     Monolog\Logger::setTimezone(new DateTimeZone(APP_DEFAULT_TIMEZONE));
     // create 'app' instance, it will be used base of other loggers
     $logfile = self::createFileHandler('eventum.log');
     $app = static::createLogger('app', array(), array())->pushHandler($logfile);
     // setup mail logger if enabled
     $mailer = self::createMailHandler();
     if ($mailer) {
         $app->pushHandler($mailer);
     }
     $app->pushProcessor(new Monolog\Processor\WebProcessor());
     $app->pushProcessor(new Monolog\Processor\MemoryUsageProcessor());
     $app->pushProcessor(new Monolog\Processor\MemoryPeakUsageProcessor());
     $app->pushProcessor(function (array $record) {
         $record['extra']['version'] = APP_VERSION;
         return $record;
     });
     // add logger for database
     static::createLogger('db');
     // log auth channel to auth.log
     static::createLogger('auth', array(self::createFileHandler('auth.log')));
     // add cli logger with different output file
     static::createLogger('cli', array(self::createFileHandler('cli.log')));
     static::registerErrorHandler($app);
 }
 protected function log($message)
 {
     $tz = new \DateTimeZone('UTC');
     $log = new \Monolog\Logger(__NAMESPACE__);
     $log->setTimezone($tz);
     $error_handler = new \Monolog\Handler\ErrorLogHandler();
     $log->pushHandler($error_handler);
     // adds url,client ip,http_method,server and referrer to each log
     $web_processor = new \Monolog\Processor\WebProcessor();
     $log->pushProcessor($web_processor);
     // adds a unique identifier to each log
     // e.g. "uid":"0ce8d6d"
     $uid_processor = new \Monolog\Processor\UidProcessor();
     $log->pushProcessor($uid_processor);
     $log->info(get_called_class() . ' ' . $message, $this->getContext());
 }
Example #3
0
 /**
  * Set the timezone to be used for the timestamp of log records.
  *
  * This is stored globally for all Logger instances
  *
  * @param \DateTimeZone $tz Timezone object
  */
 public static function setTimezone(DateTimeZone $tz)
 {
     return Monolog\Logger::setTimezone($tz);
 }