public function DBLogFilter::log in DBLog Filter 8
Same name and namespace in other branches
- 8.2 src/Logger/DBLogFilter.php \Drupal\dblog_filter\Logger\DBLogFilter::log()
Overrides RfcLoggerTrait::log
File
- src/
Logger/ DBLogFilter.php, line 34
Class
- DBLogFilter
- DBLogFilter Class.
Namespace
Drupal\dblog_filter\LoggerCode
public function log($level, $message, array $context = array()) {
$level_explode = array();
$result = FALSE;
// Get RFC LOg levels.
$levels = RfcLogLevel::getLevels();
// Get Log Filter Settings.
$config = \Drupal::config('dblog_filter.settings');
// Get Severity levels Configuration.
$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());
}
// Check for channel name and given values in log filter settings.
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 present the only log message.
if ($result) {
parent::log($level, $message, $context);
}
}