You are here

gelf.module in GELF 8

Same filename and directory in other branches
  1. 6 gelf.module
  2. 7 gelf.module

File

gelf.module
View source
<?php

/**
 * @file
 * gelf.module
 */
use Drupal\Core\Form\FormStateInterface;
use Gelf\Message;
use Gelf\Publisher;
use Gelf\Transport\UdpTransport;

/**
 * Implements hook_form_FORM_ID_alter().
 */
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) {

  //config_context_enter('config.context.free');
  $values = $form_state
    ->getUserInput();
  \Drupal::configFactory()
    ->getEditable('gelf.settings')
    ->set('gelf_host', $values['gelf_host'])
    ->set('gelf_port', $values['gelf_port'])
    ->save();
}

/**
 * Include gelf-php library.
 *
 * @return bool
 */
function gelf_require() {

  // Check if the classes already exist and allow existing autoloaders.
  if (class_exists('\\Gelf\\Message') && class_exists('\\Gelf\\Publisher')) {
    return TRUE;
  }
  return FALSE;
}