Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
0.00% |
0 / 22 |
|
0.00% |
0 / 5 |
CRAP | |
0.00% |
0 / 1 |
| OlzLogsChannel | |
0.00% |
0 / 22 |
|
0.00% |
0 / 5 |
56 | |
0.00% |
0 / 1 |
| getId | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
| getName | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
| getRetentionDays | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
| getLogFileForDateTime | |
0.00% |
0 / 10 |
|
0.00% |
0 / 1 |
6 | |||
| getDateTimeForFilePath | |
0.00% |
0 / 9 |
|
0.00% |
0 / 1 |
6 | |||
| 1 | <?php |
| 2 | |
| 3 | namespace Olz\Apps\Logs\Utils; |
| 4 | |
| 5 | use Olz\Utils\WithUtilsTrait; |
| 6 | |
| 7 | class OlzLogsChannel extends DailyFileLogsChannel { |
| 8 | use WithUtilsTrait; |
| 9 | |
| 10 | public static function getId(): string { |
| 11 | return 'olz-logs'; |
| 12 | } |
| 13 | |
| 14 | public static function getName(): string { |
| 15 | return "OLZ Logs"; |
| 16 | } |
| 17 | |
| 18 | protected function getRetentionDays(): ?int { |
| 19 | return 366; |
| 20 | } |
| 21 | |
| 22 | protected function getLogFileForDateTime(\DateTime $datetime): LogFileInterface { |
| 23 | $private_path = $this->envUtils()->getPrivatePath(); |
| 24 | $logs_path = "{$private_path}logs/"; |
| 25 | $iso_date = $datetime->format('Y-m-d'); |
| 26 | $plain_path = "{$logs_path}merged-{$iso_date}.log"; |
| 27 | $gz_path = "{$plain_path}.gz"; |
| 28 | $index_path = "{$plain_path}.index.json.gz"; |
| 29 | $iso_today = $this->dateUtils()->getIsoToday(); |
| 30 | if ($iso_date < $iso_today) { |
| 31 | return new HybridLogFile($gz_path, $plain_path, $index_path); |
| 32 | } |
| 33 | return new PlainLogFile($plain_path, $index_path); |
| 34 | } |
| 35 | |
| 36 | protected function getDateTimeForFilePath(string $file_path): \DateTime { |
| 37 | $private_path = $this->envUtils()->getPrivatePath(); |
| 38 | $logs_path = "{$private_path}logs/"; |
| 39 | $esc_logs_path = preg_quote($logs_path, '/'); |
| 40 | $pattern = "/^{$esc_logs_path}merged\\-(\\d{4}\\-\\d{2}\\-\\d{2})\\.log(\\.gz)?$/"; |
| 41 | $res = preg_match($pattern, $file_path, $matches); |
| 42 | if (!$res) { |
| 43 | throw new \Exception("Not an OLZ Log file path: {$file_path}"); |
| 44 | } |
| 45 | $iso_date = $matches[1]; |
| 46 | return new \DateTime($iso_date); |
| 47 | } |
| 48 | } |