DBLogFilter.php in DBLog Filter 8
File
src/Logger/DBLogFilter.php
View source
<?php
namespace Drupal\dblog_filter\Logger;
use Drupal\Core\Database\Connection;
use Drupal\Core\Logger\LogMessageParserInterface;
use Drupal\Core\Logger\RfcLogLevel;
use Drupal\Core\Logger\RfcLoggerTrait;
use Drupal\dblog\Logger\DbLog;
class DBLogFilter extends DbLog {
use RfcLoggerTrait;
public function __construct(Connection $connection, LogMessageParserInterface $parser) {
$this->connection = $connection;
$this->parser = $parser;
}
public function log($level, $message, array $context = array()) {
$level_explode = array();
$result = FALSE;
$levels = RfcLogLevel::getLevels();
$config = \Drupal::config('dblog_filter.settings');
$severity_levels = $config
->get('severity_levels');
$entities_load = $config
->get('log_values');
$values = array_map('trim', explode("\n", $entities_load));
foreach ($levels as $key => $log_level) {
$level_array[$key] = strtolower($log_level
->getUntranslatedString());
}
foreach ($values as $value) {
$explode_values = explode('|', $value);
if ($explode_values[0] == $context['channel']) {
$level_explode = explode(',', $explode_values[1]);
}
}
if ($level_explode) {
$result = in_array($level_array[$level], $level_explode);
}
if (!empty($severity_levels[$level_array[$level]])) {
$result = TRUE;
}
if ($result) {
parent::log($level, $message, $context);
}
}
}