View source
<?php
use Drupal\Core\Form\FormStateInterface;
use Gelf\Message;
use Gelf\Publisher;
use Gelf\Transport\UdpTransport;
function gelf_form_system_logging_settings_alter(&$form, FormStateInterface $form_state) {
$settings = \Drupal::config('gelf.settings');
$host = $settings
->get('gelf_host');
$port = $settings
->get('gelf_port');
$form['gelf_host'] = array(
'#type' => 'textfield',
'#title' => t('Graylog2 host'),
'#default_value' => $host,
);
$form['gelf_port'] = array(
'#type' => 'textfield',
'#title' => t('Graylog2 GELF port'),
'#default_value' => $port,
);
if (!gelf_require()) {
drupal_set_message(t('GELF module requires the GELF PHP library to be installed. View the README for installation instructions.'), 'error');
}
$form['actions']['submit']['#submit'][] = 'gelf_settings_form_submit';
return $form;
}
function gelf_settings_form_submit(array &$form, FormStateInterface $form_state) {
$values = $form_state
->getUserInput();
\Drupal::configFactory()
->getEditable('gelf.settings')
->set('gelf_host', $values['gelf_host'])
->set('gelf_port', $values['gelf_port'])
->save();
}
function gelf_require() {
if (class_exists('\\Gelf\\Message') && class_exists('\\Gelf\\Publisher')) {
return TRUE;
}
return FALSE;
}