public function JsonLog::log in JSONlog 8
Same name and namespace in other branches
- 8.2 src/Logger/JsonLog.php \Drupal\jsonlog\Logger\JsonLog::log()
- 3.x src/Logger/JsonLog.php \Drupal\jsonlog\Logger\JsonLog::log()
Logs any log statement - at or above a certain severity threshold - to a custom log file as JSON.
Overrides RfcLoggerTrait::log
File
- src/
Logger/ JsonLog.php, line 114
Class
- JsonLog
- Redirects logging messages to jsonlog.
Namespace
Drupal\jsonlog\LoggerCode
public function log($level, $message, array $context = []) {
if (!($log_entry = $this
->prepareLog($level, $message, $context))) {
return;
}
// File append, using lock (write, doesn't prevent reading).
// If failure: log filing error to web server's default log.
if ($this->config
->get('jsonlog_newline_prepend') ?? JsonLog::JSONLOG_NEWLINE_PREPEND) {
$prepend = "\n";
$append = '';
}
else {
$prepend = '';
$append = "\n";
}
if (!file_put_contents($this->file, $prepend . $log_entry
->getJson() . $append, FILE_APPEND | LOCK_EX)) {
error_log('Drupal jsonlog, site ID[' . $this->site_id . '], failed to write to file[' . $this->file . '].');
}
unset($log_entry);
}