3 * @copyright Copyright (C) 2010-2021, the Friendica project
5 * @license GNU AGPL version 3 or any later version
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as
9 * published by the Free Software Foundation, either version 3 of the
10 * License, or (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22 namespace Friendica\Module\Admin\Logs;
25 use Friendica\Core\Renderer;
26 use Friendica\Core\Theme;
27 use Friendica\Module\BaseAdmin;
28 use Friendica\Model\Log\ParsedLogIterator;
31 class View extends BaseAdmin
35 public static function content(array $parameters = [])
37 parent::content($parameters);
39 $t = Renderer::getMarkupTemplate('admin/logs/view.tpl');
40 DI::page()->registerFooterScript(Theme::getPathForFile('js/module/admin/logs/view.js'));
42 $f = DI::config()->get('system', 'logfile');
47 $search = $_GET['q'] ?? '';
48 $filters_valid_values = [
58 'context' => ['', 'index', 'worker'],
61 'level' => $_GET['level'] ?? '',
62 'context' => $_GET['context'] ?? '',
64 foreach($filters as $k=>$v) {
65 if ($v == '' || !in_array($v, $filters_valid_values[$k])) {
70 if (!file_exists($f)) {
71 $error = DI::l10n()->t('Error trying to open <strong>%1$s</strong> log file.\r\n<br/>Check to see if file %1$s exist and is readable.', $f);
74 $data = new ParsedLogIterator($f, self::LIMIT, $filters, $search);
75 } catch (Exception $e) {
76 $error = DI::l10n()->t('Couldn\'t open <strong>%1$s</strong> log file.\r\n<br/>Check to see if file %1$s is readable.', $f);
79 return Renderer::replaceMacros($t, [
80 '$title' => DI::l10n()->t('Administration'),
81 '$page' => DI::l10n()->t('View Logs'),
84 '$filters' => $filters,
85 '$filtersvalues' => $filters_valid_values,
87 '$logname' => DI::config()->get('system', 'logfile'),