mirror of
https://github.com/FreshRSS/FreshRSS.git
synced 2026-01-19 18:57:53 -05:00
* Little's optimisations and booleans in conditions * Apply strict type * Apply strict type * Apply strict type * Fix multiple bugs with PHP 8.2 and 8.3 * Many declares missing, more errors fixed * Apply strict type * Another approach * Stronger typing for Minz_Session * Fix case of SQLite --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
final class FreshRSS_LogDAO {
|
|
public static function logPath(?string $logFileName = null): string {
|
|
if ($logFileName === null || $logFileName === '') {
|
|
$logFileName = LOG_FILENAME;
|
|
}
|
|
return USERS_PATH . '/' . (Minz_User::name() ?? Minz_User::INTERNAL_USER) . '/' . $logFileName;
|
|
}
|
|
|
|
/** @return array<FreshRSS_Log> */
|
|
public static function lines(?string $logFileName = null): array {
|
|
$logs = [];
|
|
$handle = @fopen(self::logPath($logFileName), 'r');
|
|
if ($handle) {
|
|
while (($line = fgets($handle)) !== false) {
|
|
if (preg_match('/^\[([^\[]+)\] \[([^\[]+)\] --- (.*)$/', $line, $matches)) {
|
|
$myLog = new FreshRSS_Log();
|
|
$myLog->_date($matches[1]);
|
|
$myLog->_level($matches[2]);
|
|
$myLog->_info($matches[3]);
|
|
$logs[] = $myLog;
|
|
}
|
|
}
|
|
fclose($handle);
|
|
}
|
|
return array_reverse($logs);
|
|
}
|
|
|
|
public static function truncate(?string $logFileName = null): void {
|
|
file_put_contents(self::logPath($logFileName), '');
|
|
if (FreshRSS_Auth::hasAccess('admin')) {
|
|
file_put_contents(ADMIN_LOG, '');
|
|
file_put_contents(API_LOG, '');
|
|
file_put_contents(PSHB_LOG, '');
|
|
}
|
|
}
|
|
}
|