Code Coverage  | 
     ||||||||||
Classes and Traits  | 
      Functions and Methods  | 
      Lines  | 
     ||||||||
| Total |         | 
      0.00%  | 
      0 / 1  | 
              | 
      0.00%  | 
      0 / 3  | 
      CRAP |         | 
      0.00%  | 
      0 / 28  | 
     
| SysLog |         | 
      0.00%  | 
      0 / 1  | 
              | 
      0.00%  | 
      0 / 3  | 
      56 |         | 
      0.00%  | 
      0 / 28  | 
     
| __construct |         | 
      0.00%  | 
      0 / 1  | 
      2 |         | 
      0.00%  | 
      0 / 3  | 
     |||
| openConnection |         | 
      0.00%  | 
      0 / 1  | 
      20 |         | 
      0.00%  | 
      0 / 8  | 
     |||
| log |         | 
      0.00%  | 
      0 / 1  | 
      6 |         | 
      0.00%  | 
      0 / 17  | 
     |||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\syslog\Logger\SysLog. | |
| */ | |
| namespace Drupal\syslog\Logger; | |
| use Drupal\Core\Config\ConfigFactoryInterface; | |
| use Drupal\Core\Logger\LogMessageParserInterface; | |
| use Drupal\Core\Logger\RfcLoggerTrait; | |
| use Psr\Log\LoggerInterface; | |
| /** | |
| * Redirects logging messages to syslog. | |
| */ | |
| class SysLog implements LoggerInterface { | |
| use RfcLoggerTrait; | |
| /** | |
| * A configuration object containing syslog settings. | |
| * | |
| * @var \Drupal\Core\Config\Config | |
| */ | |
| protected $config; | |
| /** | |
| * The message's placeholders parser. | |
| * | |
| * @var \Drupal\Core\Logger\LogMessageParserInterface | |
| */ | |
| protected $parser; | |
| /** | |
| * Stores whether there is a system logger connection opened or not. | |
| * | |
| * @var bool | |
| */ | |
| protected $connectionOpened = FALSE; | |
| /** | |
| * Constructs a SysLog object. | |
| * | |
| * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory | |
| * The configuration factory object. | |
| * @param \Drupal\Core\Logger\LogMessageParserInterface $parser | |
| * The parser to use when extracting message variables. | |
| */ | |
| public function __construct(ConfigFactoryInterface $config_factory, LogMessageParserInterface $parser) { | |
| $this->config = $config_factory->get('syslog.settings'); | |
| $this->parser = $parser; | |
| } | |
| /** | |
| * Opens a connection to the system logger. | |
| */ | |
| protected function openConnection() { | |
| if (!$this->connectionOpened) { | |
| $facility = $this->config->get('facility'); | |
| if ($facility === '') { | |
| $facility = defined('LOG_LOCAL0') ? LOG_LOCAL0 : LOG_USER; | |
| } | |
| $this->connectionOpened = openlog($this->config->get('identity'), LOG_NDELAY, $facility); | |
| } | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function log($level, $message, array $context = array()) { | |
| global $base_url; | |
| // Ensure we have a connection available. | |
| $this->openConnection(); | |
| // Populate the message placeholders and then replace them in the message. | |
| $message_placeholders = $this->parser->parseMessagePlaceholders($message, $context); | |
| $message = empty($message_placeholders) ? $message : strtr($message, $message_placeholders); | |
| $entry = strtr($this->config->get('format'), array( | |
| '!base_url' => $base_url, | |
| '!timestamp' => $context['timestamp'], | |
| '!type' => $context['channel'], | |
| '!ip' => $context['ip'], | |
| '!request_uri' => $context['request_uri'], | |
| '!referer' => $context['referer'], | |
| '!uid' => $context['uid'], | |
| '!link' => strip_tags($context['link']), | |
| '!message' => strip_tags($message), | |
| )); | |
| syslog($level, $entry); | |
| } | |
| } |