class SolariumRequestLogger in Search API Solr 8.2
Same name and namespace in other branches
- 8.3 modules/search_api_solr_devel/src/Logging/SolariumRequestLogger.php \Drupal\search_api_solr_devel\Logging\SolariumRequestLogger
- 4.x modules/search_api_solr_devel/src/Logging/SolariumRequestLogger.php \Drupal\search_api_solr_devel\Logging\SolariumRequestLogger
Event subscriber to handle Solarium events.
Hierarchy
- class \Drupal\search_api_solr_devel\Logging\SolariumRequestLogger implements \Symfony\Component\EventDispatcher\EventSubscriberInterface uses StringTranslationTrait, LoggerTrait
Expanded class hierarchy of SolariumRequestLogger
1 string reference to 'SolariumRequestLogger'
- search_api_solr_devel.services.yml in search_api_solr_devel/
search_api_solr_devel.services.yml - search_api_solr_devel/search_api_solr_devel.services.yml
1 service uses SolariumRequestLogger
File
- search_api_solr_devel/
src/ Logging/ SolariumRequestLogger.php, line 16
Namespace
Drupal\search_api_solr_devel\LoggingView source
class SolariumRequestLogger implements EventSubscriberInterface {
use StringTranslationTrait;
use LoggerTrait;
/**
* The Devel dumper manager.
*
* @var \Drupal\devel\DevelDumperManagerInterface
*/
protected $develDumperManager;
/**
* Constructs a ModuleRouteSubscriber object.
*
* @param \Drupal\devel\DevelDumperManagerInterface $develDumperManager
* The dump manager.
*/
public function __construct(DevelDumperManagerInterface $develDumperManager) {
$this->develDumperManager = $develDumperManager;
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents() {
return [
Events::PRE_EXECUTE_REQUEST => 'preExecuteRequest',
Events::POST_EXECUTE_REQUEST => 'postExecuteRequest',
];
}
/**
* Dumps a Solr query as drupal messages.
*
* @param \Solarium\Core\Event\PreExecuteRequest $event
* The pre execute event.
*/
public function preExecuteRequest(PreExecuteRequest $event) {
$request = $event
->getRequest();
$method = $request
->getMethod();
$this->develDumperManager
->message($request
->getUri(), $this
->t('Try to send Solr request'));
$dump = [];
$parameters = $method == 'GET' ? explode('&', $request
->getQueryString()) : explode('&', $request
->getRawData());
foreach ($parameters as $parameter) {
if ($parameter) {
if (strpos($parameter, '=')) {
list($name, $value) = explode('=', $parameter);
$dump[urldecode($name)][] = urldecode($value);
}
else {
$dump[urldecode($parameter)][] = '';
}
}
}
$this->develDumperManager
->message($dump, $method);
}
/**
* Dumps a Solr response status as drupal messages and logs the response body.
*
* @param \Solarium\Core\Event\PostExecuteRequest $event
* The pre execute event.
*/
public function postExecuteRequest(PostExecuteRequest $event) {
$response = $event
->getResponse();
$this->develDumperManager
->message($response
->getStatusCode() . ' ' . $response
->getStatusMessage(), $this
->t('Received Solr response'));
$this
->getLogger()
->debug(print_r($response
->getBody(), TRUE));
$this
->showLoggerHint();
}
/**
*
*/
protected function showLoggerHint() {
static $hint = FALSE;
if (!$hint) {
$hint = TRUE;
$this->develDumperManager
->message('Type: search_api, Severity: Debug', $this
->t('Check the logs for detailed Solr response bodies'), 'warning');
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
LoggerTrait:: |
protected | property | The logging channel to use. | |
LoggerTrait:: |
public | function | Retrieves the logger. | |
LoggerTrait:: |
protected | function | Logs an exception. | |
LoggerTrait:: |
public | function | Sets the logger. | |
SolariumRequestLogger:: |
protected | property | The Devel dumper manager. | |
SolariumRequestLogger:: |
public static | function | Returns an array of event names this subscriber wants to listen to. | |
SolariumRequestLogger:: |
public | function | Dumps a Solr response status as drupal messages and logs the response body. | |
SolariumRequestLogger:: |
public | function | Dumps a Solr query as drupal messages. | |
SolariumRequestLogger:: |
protected | function | ||
SolariumRequestLogger:: |
public | function | Constructs a ModuleRouteSubscriber object. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |