Esempio n. 1
0
 public function get(LogFile $logFile)
 {
     $args = self::getFilesystem($logFile->getArgs());
     $file = $args['filesystem']->read($args['path']);
     if (pathinfo($args['path'])['extension'] === 'gz') {
         $file = gzdecode($file);
     }
     $lines = explode("\n", $file);
     $parser = new LineLogParser();
     if (isset($args['pattern'])) {
         $hasCustomPattern = true;
         $parser->registerPattern('custom', $args['pattern']);
     } else {
         $hasCustomPattern = false;
     }
     foreach ($lines as $line) {
         $entry = $hasCustomPattern ? $parser->parse($line, 0, 'custom') : $parser->parse($line, 0);
         if (count($entry) > 0) {
             if (!$logFile->hasLogger($entry['logger'])) {
                 $logFile->addLogger($entry['logger']);
             }
             $logFile->addLine($entry);
         }
     }
     if ($this->reverse) {
         $logFile->reverseLines();
     }
     return $logFile;
 }
 public function load()
 {
     switch ($this->args['type']) {
         case 'ftp':
             $this->filesystem = new Filesystem(new Ftp(array('host' => $this->args['host'], 'username' => $this->args['username'], 'password' => $this->args['password'], 'passive' => true, 'ssl' => false)));
             break;
         case 'local':
             $this->filesystem = new Filesystem(new Local(dirname($this->args['path'])));
             $this->args['path'] = basename($this->args['path']);
             break;
         default:
             throw new \InvalidArgumentException("Invalid log file type: \"" . $this->args['type'] . "\"");
     }
     $file = $this->filesystem->read($this->args['path']);
     $lines = explode("\n", $file);
     $parser = new LineLogParser();
     if (isset($this->args['pattern'])) {
         $hasCustomPattern = true;
         $parser->registerPattern('custom', $this->args['pattern']);
     } else {
         $hasCustomPattern = false;
     }
     $this->loggers = new ArrayCollection();
     foreach ($lines as $line) {
         $entry = $hasCustomPattern ? $parser->parse($line, 0, 'custom') : $parser->parse($line, 0);
         if (count($entry) > 0) {
             if (!$this->loggers->contains($entry['logger'])) {
                 $this->loggers->add($entry['logger']);
             }
             $this->lines[] = $entry;
         }
     }
     return $this;
 }
Esempio n. 3
0
 public function testLineFormatter()
 {
     $parser = new LineLogParser();
     $log = $parser->parse('[2013-03-16 14:19:51] test.INFO: foobar {"foo":"bar"} []');
     $this->assertInstanceOf('\\DateTime', $log['date']);
     $this->assertEquals('test', $log['logger']);
     $this->assertEquals('INFO', $log['level']);
     $this->assertEquals('foobar', $log['message']);
     $this->assertArrayHasKey('foo', $log['context']);
 }
Esempio n. 4
0
 /**
  * @param $name
  * @param $path
  */
 public function __construct($name, $path)
 {
     setlocale(LC_ALL, 'en_US.UTF8');
     $this->name = $name;
     $this->slug = $this->toAscii($name);
     $this->path = $path;
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL, $this->path);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     $file = curl_exec($ch);
     curl_close($ch);
     $lines = explode("\n", $file);
     $parser = new LineLogParser();
     foreach ($lines as $line) {
         $entry = $parser->parse($line, 0);
         if (count($entry) > 0) {
             $this->lines[] = $entry;
         }
     }
 }
Esempio n. 5
0
 private function loadSource(LogFile $logFile)
 {
     $args = $logFile->getArgs();
     switch ($args['type']) {
         case 'ftp':
             $filesystem = new Filesystem(new Ftp(array('host' => $args['host'], 'username' => $args['username'], 'password' => $args['password'], 'passive' => true, 'ssl' => false)));
             break;
         case 'local':
             $filesystem = new Filesystem(new Local(dirname($args['path'])));
             $args['path'] = basename($args['path']);
             break;
         default:
             throw new \InvalidArgumentException("Invalid log file type: \"" . $args['type'] . "\"");
     }
     $file = $filesystem->read($args['path']);
     $lines = explode("\n", $file);
     $parser = new LineLogParser();
     if (isset($args['pattern'])) {
         $hasCustomPattern = true;
         $parser->registerPattern('custom', $args['pattern']);
     } else {
         $hasCustomPattern = false;
     }
     foreach ($lines as $line) {
         $entry = $hasCustomPattern ? $parser->parse($line, 0, 'custom') : $parser->parse($line, 0);
         if (count($entry) > 0) {
             if (!$logFile->hasLogger($entry['logger'])) {
                 $logFile->addLogger($entry['logger']);
             }
             $logFile->addLine($entry);
         }
     }
     if ($this->reverse) {
         $logFile->reverseLines();
     }
     $this->writeCache($logFile);
     return $logFile;
 }