| @@ -49,9 +49,9 @@ | ||
| 49 | 49 | $logFileHandle = explode("\n", $content); |
| 50 | 50 | |
| 51 | 51 | foreach ($logFileHandle as $id => $currentLine) { |
| 52 | 52 | // Normal error log line starts with the date & time in [] |
| 53 | - if ('[' === ($currentLine[0] ?? '')) { | |
| 53 | + if ('[' === @$currentLine[0]) { | |
| 54 | 54 | // if (10000 === \count($parsedLogs)) { |
| 55 | 55 | // return $parsedLogs; |
| 56 | 56 | // } |
| 57 | 57 | |
| @@ -128,32 +128,24 @@ | ||
| 128 | 128 | 'stackTrace' => [] |
| 129 | 129 | ]; |
| 130 | 130 | } // Stack trace beginning line |
| 131 | 131 | else if ('Stack trace:' === $currentLine) { |
| 132 | - $parsedLogsLastKey = array_key_last($parsedLogs); | |
| 133 | - if (null === $parsedLogsLastKey) { | |
| 134 | - continue; | |
| 135 | - } | |
| 132 | + $stackTraceLineNumber = 0; | |
| 136 | 133 | |
| 137 | - $stackTraceLineNumber = 0; | |
| 138 | - for ($trace_index = $id + 1, $trace_count = count($logFileHandle); $trace_index < $trace_count; $trace_index++) { | |
| 139 | - $trace_line = trim($logFileHandle[$trace_index]); | |
| 140 | - if ('' === $trace_line) { | |
| 141 | - continue; | |
| 142 | - } | |
| 143 | - if ('#' === $trace_line[0]) { | |
| 144 | - $prefix = '#' . $stackTraceLineNumber; | |
| 145 | - if (0 === strpos($trace_line, $prefix)) { | |
| 146 | - $trace_line = substr($trace_line, strlen($prefix)); | |
| 147 | - } | |
| 148 | - $parsedLogs[$parsedLogsLastKey]['stackTrace'][] = trim($trace_line); | |
| 134 | + foreach ($logFileHandle as $line) { | |
| 135 | + $currentLine = str_replace(PHP_EOL, '', $line); | |
| 136 | + | |
| 137 | + // If the current line is a stack trace line | |
| 138 | + if ('#' === $currentLine[0]) { | |
| 139 | + $parsedLogsLastKey = key($parsedLogs); | |
| 140 | + $currentLine = str_replace('#' . $stackTraceLineNumber, '', $currentLine); | |
| 141 | + $parsedLogs[$parsedLogsLastKey]['stackTrace'][] = trim($currentLine); | |
| 142 | + | |
| 149 | 143 | $stackTraceLineNumber++; |
| 150 | - continue; | |
| 144 | + } // If the current line is the last stack trace ('thrown in...') | |
| 145 | + else { | |
| 146 | + break; | |
| 151 | 147 | } |
| 152 | - if (0 === strpos($trace_line, 'thrown in ')) { | |
| 153 | - $parsedLogs[$parsedLogsLastKey]['stackTrace'][] = $trace_line; | |
| 154 | - } | |
| 155 | - break; | |
| 156 | 148 | } |
| 157 | 149 | } |
| 158 | 150 | } |
| 159 | 151 | |