original_string: public function parse($line)
      {
          if( !is_string($line) || strlen($line) === 0) {
              return array();
          }
          preg_match($this->pattern, $line, $data);
          if (!isset($data['date'])) {
              return array();
          }
  
          preg_match('/(.*)- Trace:(.*)/', $data['message'], $matches);
          if (is_array($matches) && isset($matches[1])) {
              $data['message'] = trim($matches[1]);
              $data['trace'] = trim($matches[2]);
          }
  
          return array(
              'date' => \DateTime::createFromFormat('Y-m-d H:i:s', $data['date']),
              'logger' => $data['logger'],
              'level' => $data['level'],
              'message' => $data['message'],
              'trace' => isset($data['trace']) ? $this->parseTrace($data['trace']) : null,
              'context' => json_decode($data['context'], true),
              'extra' => json_decode($data['extra'], true)
          );
      }
code: public function parse($line)
      {
          if( !is_string($line) || strlen($line) === 0) {
              return array();
          }
          preg_match($this->pattern, $line, $data);
          if (!isset($data['date'])) {
              return array();
          }
  
          preg_match('/(.*)- Trace:(.*)/', $data['message'], $matches);
          if (is_array($matches) && isset($matches[1])) {
              $data['message'] = trim($matches[1]);
              $data['trace'] = trim($matches[2]);
          }
  
          return array(
              'date' => \DateTime::createFromFormat('Y-m-d H:i:s', $data['date']),
              'logger' => $data['logger'],
              'level' => $data['level'],
              'message' => $data['message'],
              'trace' => isset($data['trace']) ? $this->parseTrace($data['trace']) : null,
              'context' => json_decode($data['context'], true),
              'extra' => json_decode($data['extra'], true)
          );
      }
code_tokens: public function parse ( $ line ) { if ( ! is_string ( $ line ) || strlen ( $ line ) === 0 ) { return array ( ) ; } preg_match ( $ this -> pattern , $ line , $ data ) ; if ( ! isset ( $ data [ 'date' ] ) ) { return array ( ) ; } preg_match ( '/(.*)- Trace:(.*)/' , $ data [ 'message' ] , $ matches ) ; if ( is_array ( $ matches ) && isset ( $ matches [ 1 ] ) ) { $ data [ 'message' ] = trim ( $ matches [ 1 ] ) ; $ data [ 'trace' ] = trim ( $ matches [ 2 ] ) ; } return array ( 'date' => \ DateTime :: createFromFormat ( 'Y-m-d H:i:s' , $ data [ 'date' ] ) , 'logger' => $ data [ 'logger' ] , 'level' => $ data [ 'level' ] , 'message' => $ data [ 'message' ] , 'trace' => isset ( $ data [ 'trace' ] ) ? $ this -> parseTrace ( $ data [ 'trace' ] ) : null , 'context' => json_decode ( $ data [ 'context' ] , true ) , 'extra' => json_decode ( $ data [ 'extra' ] , true ) ) ; }
docstring: Parse a monolog row into array bits
  
  @param string $line
  @return array
docstring_tokens: Parse a monolog row into array bits