| Server IP : 93.86.61.54 / Your IP : 216.73.216.60 Web Server : Apache/2.4.62 (Ubuntu) System : Linux rasin.ddns.net 6.8.0-124-generic #124~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 21:05:19 UTC x86_64 User : www-data ( 33) PHP Version : 8.4.22 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/projects/nextcloud/apps/logreader/lib/Log/ |
Upload File : |
<?php
/**
* @author Robin Appelman <icewind@owncloud.com>
*
* @copyright Copyright (c) 2015, ownCloud, Inc.
* @license AGPL-3.0
*
* This code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License, version 3,
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
namespace OCA\LogReader\Log;
class SearchFilter extends \FilterIterator {
/**
* @var string
*/
private $query;
/**
* @var string[]
*/
private $levels;
/**
* @param \Iterator $iterator
* @param string $query
*/
public function __construct(\Iterator $iterator, $query) {
parent::__construct($iterator);
$this->rewind();
$this->query = strtolower($query);
$this->levels = ['Debug', 'Info', 'Warning', 'Error', 'Fatal'];
}
private function formatLevel($level) {
return isset($this->levels[$level]) ? $this->levels[$level] : 'Unknown';
}
public function accept() {
if (!$this->query) {
return true;
}
$value = $this->current();
return $this->inMessage($value['message'], $this->query)
|| stripos($value['app'], $this->query) !== false
|| stripos($value['reqId'], $this->query) !== false
|| stripos($value['user'], $this->query) !== false
|| stripos($value['url'], $this->query) !== false
|| stripos($this->formatLevel($value['level']), $this->query) !== false;
}
private function inMessage($message, $query) {
if (is_string($message)) {
return stripos($message, $query) !== false;
} else if (isset($message['Exception'])) {
return stripos($message['Exception'], $query) !== false
|| stripos($message['Message'], $query) !== false;
}
}
}