Example #1
0
 public function testItIsUsableThroughPluginInstance()
 {
     /** @var \Wplog\Plugin $plugin */
     $plugin = \Wplog\wplog();
     /** @var \Wplog\Logging\InternalLogger $logger */
     $logger = $plugin->internalLogger();
     $this->assertInstanceOf(InternalLogger::class, $logger);
 }
Example #2
0
 /**
  * Catch-all log method.
  *
  * @fixme Validate log rotation needs and log size limits.
  *
  * @since 0.1.0
  *
  * @param String $level Log level (PSR).
  * @param String $message Log message.
  * @param mixed[] $context Log message context.
  * @param \Wplog\Events\Event|null $event Event we're currently logging.
  *
  * @return Boolean
  */
 public function log($level, $message, array $context = [], Event $event = null) : bool
 {
     try {
         if ($event === null) {
             throw new \InvalidArgumentException('No event given for file logger logging method.');
         }
         file_put_contents($this->logFile, (string) $event . "\n", FILE_APPEND);
         return true;
     } catch (\Exception $e) {
         \Wplog\wplog()->internalLogger()->error('Could not log using file logger: ' . $e->getMessage());
         return false;
     }
 }
Example #3
0
 /**
  * Handle and log the events this handler has listened to.
  *
  * @since 0.1.0
  * @access protected
  * @return void
  */
 public function handleEvents()
 {
     if (empty($this->listenerEvents)) {
         return;
     }
     // Prune null events.
     $this->listenerEvents = array_filter($this->listenerEvents, function ($eventObject) {
         return !$eventObject instanceof NullEvent;
     });
     foreach ($this->listenerEvents as $event) {
         try {
             $this->loggerCollection->write($event);
         } catch (\Throwable $t) {
             \Wplog\wplog()->internalLogger()->alert('Could not write log entry: {msg}', ['msg' => $t->getMessage()]);
         }
     }
 }