diff --git a/core/includes/errors.inc b/core/includes/errors.inc
index 0524170..12d773a 100644
--- a/core/includes/errors.inc
+++ b/core/includes/errors.inc
@@ -163,7 +163,7 @@ function _drupal_render_exception_safe($exception) {
* TRUE if an error should be displayed.
*/
function error_displayable($error = NULL) {
- $error_level = variable_get('error_level', ERROR_REPORTING_DISPLAY_ALL);
+ $error_level = config('system.logging')->get('error_level');
$updating = (defined('MAINTENANCE_MODE') && MAINTENANCE_MODE == 'update');
$all_errors_displayed = ($error_level == ERROR_REPORTING_DISPLAY_ALL);
$error_needs_display = ($error_level == ERROR_REPORTING_DISPLAY_SOME &&
diff --git a/core/modules/dblog/config/dblog.logging.xml b/core/modules/dblog/config/dblog.logging.xml
new file mode 100644
index 0000000..973f8d2
--- /dev/null
+++ b/core/modules/dblog/config/dblog.logging.xml
@@ -0,0 +1,4 @@
+
+
+ 1000
+
diff --git a/core/modules/dblog/dblog.install b/core/modules/dblog/dblog.install
index 23f85ba..df14f32 100644
--- a/core/modules/dblog/dblog.install
+++ b/core/modules/dblog/dblog.install
@@ -92,8 +92,20 @@ function dblog_schema() {
}
/**
- * Implements hook_uninstall().
+ * @defgroup updates-7.x-to-8.x Updates from 7.x to 8.x
+ * @{
+ * Update functions from 7.x to 8.x.
*/
-function dblog_uninstall() {
- variable_del('dblog_row_limit');
+
+/**
+ * Update settings to the new configuration system.
+ **/
+function dblog_update_8000() {
+ config_install_default_config('dblog');
+ update_variables_to_config('dblog.logging');
}
+
+/**
+ * @} End of "defgroup updates-7.x-to-8.x"
+ * The next series of updates should start at 9000.
+ */
diff --git a/core/modules/dblog/dblog.module b/core/modules/dblog/dblog.module
index a43e0a5..5294daf 100644
--- a/core/modules/dblog/dblog.module
+++ b/core/modules/dblog/dblog.module
@@ -102,7 +102,7 @@ function dblog_init() {
*/
function dblog_cron() {
// Cleanup the watchdog table.
- $row_limit = variable_get('dblog_row_limit', 1000);
+ $row_limit = config('dblog.logging')->get('dblog_row_limit');
// For row limit n, get the wid of the nth row in descending wid order.
// Counting the most recent n rows avoids issues with wid number sequences,
@@ -163,11 +163,24 @@ function dblog_form_system_logging_settings_alter(&$form, $form_state) {
$form['dblog_row_limit'] = array(
'#type' => 'select',
'#title' => t('Database log messages to keep'),
- '#default_value' => variable_get('dblog_row_limit', 1000),
+ '#default_value' => config('dblog.logging')->get('dblog_row_limit'),
'#options' => array(0 => t('All')) + drupal_map_assoc(array(100, 1000, 10000, 100000, 1000000)),
'#description' => t('The maximum number of messages to keep in the database log. Requires a cron maintenance task.', array('@cron' => url('admin/reports/status')))
);
$form['actions']['#weight'] = 1;
+
+ $form['#submit'][] = 'dblog_logging_settings_submit';
+}
+
+/**
+ * Form submission handler for dblog logging settings.
+ *
+ * @ingroup forms
+ */
+function dblog_logging_settings_submit($form, &$form_state) {
+ config('dblog.logging')
+ ->set('dblog_row_limit', $form_state['values']['dblog_row_limit'])
+ ->save();
}
/**
diff --git a/core/modules/dblog/dblog.test b/core/modules/dblog/dblog.test
index 92763c1..81ac5ee 100644
--- a/core/modules/dblog/dblog.test
+++ b/core/modules/dblog/dblog.test
@@ -63,11 +63,8 @@ class DBLogTestCase extends WebTestBase {
$this->assertResponse(200);
// Check row limit variable.
- $current_limit = variable_get('dblog_row_limit', 1000);
+ $current_limit = config('dblog.logging')->get('dblog_row_limit');
$this->assertTrue($current_limit == $row_limit, t('[Cache] Row limit variable of @count equals row limit of @limit', array('@count' => $current_limit, '@limit' => $row_limit)));
- // Verify dblog row limit equals specified row limit.
- $current_limit = unserialize(db_query("SELECT value FROM {variable} WHERE name = :dblog_limit", array(':dblog_limit' => 'dblog_row_limit'))->fetchField());
- $this->assertTrue($current_limit == $row_limit, t('[Variable table] Row limit variable of @count equals row limit of @limit', array('@count' => $current_limit, '@limit' => $row_limit)));
}
/**
diff --git a/core/modules/syslog/config/syslog.logging.xml b/core/modules/syslog/config/syslog.logging.xml
new file mode 100644
index 0000000..8874045
--- /dev/null
+++ b/core/modules/syslog/config/syslog.logging.xml
@@ -0,0 +1,5 @@
+
+
+ drupal
+ !base_url|!timestamp|!type|!ip|!request_uri|!referer|!uid|!link|!message
+
diff --git a/core/modules/syslog/syslog.install b/core/modules/syslog/syslog.install
index 12ff4fb..5dfa058 100644
--- a/core/modules/syslog/syslog.install
+++ b/core/modules/syslog/syslog.install
@@ -6,10 +6,31 @@
*/
/**
- * Implements hook_uninstall().
+ * Implements hook_install().
*/
-function syslog_uninstall() {
- variable_del('syslog_identity');
- variable_del('syslog_facility');
- variable_del('syslog_format');
+function syslog_install() {
+ // The default facility setting depends on the operating system, so it needs
+ // to be set dynamically during installation.
+ config('syslog.logging')
+ ->set('syslog_facility', defined('LOG_LOCAL0') ? LOG_LOCAL0 : LOG_USER)
+ ->save();
}
+
+/**
+ * @defgroup updates-7.x-to-8.x Updates from 7.x to 8.x
+ * @{
+ * Update functions from 7.x to 8.x.
+ */
+
+/**
+ * Update settings to the new configuration system.
+ **/
+function syslog_update_8000() {
+ config_install_default_config('syslog');
+ update_variables_to_config('syslog.logging');
+}
+
+/**
+ * @} End of "defgroup updates-7.x-to-8.x"
+ * The next series of updates should start at 9000.
+ */
diff --git a/core/modules/syslog/syslog.module b/core/modules/syslog/syslog.module
index 1327606..5b840db 100644
--- a/core/modules/syslog/syslog.module
+++ b/core/modules/syslog/syslog.module
@@ -45,18 +45,19 @@ function syslog_help($path, $arg) {
* Implements hook_form_FORM_ID_alter().
*/
function syslog_form_system_logging_settings_alter(&$form, &$form_state) {
+ $config = config('syslog.logging');
$help = module_exists('help') ? ' ' . l(t('More information'), 'admin/help/syslog') . '.' : NULL;
$form['syslog_identity'] = array(
'#type' => 'textfield',
'#title' => t('Syslog identity'),
- '#default_value' => variable_get('syslog_identity', 'drupal'),
+ '#default_value' => $config->get('syslog_identity'),
'#description' => t('A string that will be prepended to every message logged to Syslog. If you have multiple sites logging to the same Syslog log file, a unique identity per site makes it easy to tell the log entries apart.') . $help,
);
if (defined('LOG_LOCAL0')) {
$form['syslog_facility'] = array(
'#type' => 'select',
'#title' => t('Syslog facility'),
- '#default_value' => variable_get('syslog_facility', LOG_LOCAL0),
+ '#default_value' => $config->get('syslog_facility'),
'#options' => syslog_facility_list(),
'#description' => t('Depending on the system configuration, Syslog and other logging tools use this code to identify or filter messages from within the entire system log.') . $help,
);
@@ -64,10 +65,25 @@ function syslog_form_system_logging_settings_alter(&$form, &$form_state) {
$form['syslog_format'] = array(
'#type' => 'textarea',
'#title' => t('Syslog format'),
- '#default_value' => variable_get('syslog_format', '!base_url|!timestamp|!type|!ip|!request_uri|!referer|!uid|!link|!message'),
+ '#default_value' => $config->get('syslog_format'),
'#description' => t('Specify the format of the syslog entry. Available variables are:
!base_url
- Base URL of the site.
!timestamp
- Unix timestamp of the log entry.
!type
- The category to which this message belongs.
!ip
- IP address of the user triggering the message.
!request_uri
- The requested URI.
!referer
- HTTP Referer if available.
!uid
- User ID.
!link
- A link to associate with the message.
!message
- The message to store in the log.
'),
);
$form['actions']['#weight'] = 1;
+
+ $form['#submit'][] = 'syslog_logging_settings_submit';
+}
+
+/**
+ * Form submission handler for logging settings.
+ *
+ * @ingroup forms
+ */
+function syslog_logging_settings_submit($form, &$form_state) {
+ config('syslog.logging')
+ ->set('syslog_identity', $form_state['values']['identity'])
+ ->set('syslog_facility', $form_state['values']['facility'])
+ ->set('syslog_format', $form_state['values']['format'])
+ ->save();
}
/**
@@ -95,14 +111,14 @@ function syslog_watchdog(array $log_entry) {
global $base_url;
$log_init = &drupal_static(__FUNCTION__, FALSE);
+ $config = config('syslog.logging');
if (!$log_init) {
$log_init = TRUE;
- $default_facility = defined('LOG_LOCAL0') ? LOG_LOCAL0 : LOG_USER;
- openlog(variable_get('syslog_identity', 'drupal'), LOG_NDELAY, variable_get('syslog_facility', $default_facility));
+ openlog($config->get('syslog_identity'), LOG_NDELAY, $config->get('syslog_facility'));
}
- $message = strtr(variable_get('syslog_format', '!base_url|!timestamp|!type|!ip|!request_uri|!referer|!uid|!link|!message'), array(
+ $message = strtr($config->get('syslog_format'), array(
'!base_url' => $base_url,
'!timestamp' => $log_entry['timestamp'],
'!type' => $log_entry['type'],
diff --git a/core/modules/system/config/system.logging.xml b/core/modules/system/config/system.logging.xml
new file mode 100644
index 0000000..b1a6936
--- /dev/null
+++ b/core/modules/system/config/system.logging.xml
@@ -0,0 +1,4 @@
+
+
+ 2
+
diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc
index a10e246..2b182bd 100644
--- a/core/modules/system/system.admin.inc
+++ b/core/modules/system/system.admin.inc
@@ -1642,7 +1642,7 @@ function system_logging_settings() {
$form['error_level'] = array(
'#type' => 'radios',
'#title' => t('Error messages to display'),
- '#default_value' => variable_get('error_level', ERROR_REPORTING_DISPLAY_ALL),
+ '#default_value' => config('system.logging')->get('error_level'),
'#options' => array(
ERROR_REPORTING_HIDE => t('None'),
ERROR_REPORTING_DISPLAY_SOME => t('Errors and warnings'),
@@ -1651,7 +1651,24 @@ function system_logging_settings() {
'#description' => t('It is recommended that sites running on production environments do not display any errors.'),
);
- return system_settings_form($form);
+ $form['actions'] = array('#type' => 'actions');
+ $form['actions']['submit'] = array(
+ '#type' => 'submit',
+ '#value' => t('Save configuration'),
+ );
+ return $form;
+}
+
+/**
+ * Form submission handler for system_logging_settings().
+ *
+ * @ingroup forms
+ */
+function system_logging_settings_submit($form, &$form_state) {
+ config('system.logging')
+ ->set('error_level', $form_state['values']['error_level'])
+ ->save();
+ drupal_set_message('The configuration options have been saved.');
}
/**
diff --git a/core/modules/system/system.install b/core/modules/system/system.install
index 8958f31..e3538f4 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -1866,6 +1866,14 @@ function system_update_8009() {
}
/**
+ * Update settings to the new configuration system.
+ **/
+function system_update_8010() {
+ config_install_default_config('system');
+ update_variables_to_config('system.logging');
+}
+
+/**
* @} End of "defgroup updates-7.x-to-8.x"
* The next series of updates should start at 9000.
*/
diff --git a/core/modules/system/tests/error.test b/core/modules/system/tests/error.test
index a088902..6e2870c 100644
--- a/core/modules/system/tests/error.test
+++ b/core/modules/system/tests/error.test
@@ -23,6 +23,7 @@ class DrupalErrorHandlerUnitTest extends WebTestBase {
* Test the error handler.
*/
function testErrorHandler() {
+ $config = config('system.logging');
$error_notice = array(
'%type' => 'Notice',
'!message' => 'Undefined variable: bananas',
@@ -43,7 +44,7 @@ class DrupalErrorHandlerUnitTest extends WebTestBase {
);
// Set error reporting to collect notices.
- variable_set('error_level', ERROR_REPORTING_DISPLAY_ALL);
+ $config->set('error_level', ERROR_REPORTING_DISPLAY_ALL)->save();
$this->drupalGet('error-test/generate-warnings');
$this->assertResponse(200, t('Received expected HTTP status code.'));
$this->assertErrorMessage($error_notice);
@@ -51,7 +52,7 @@ class DrupalErrorHandlerUnitTest extends WebTestBase {
$this->assertErrorMessage($error_user_notice);
// Set error reporting to not collect notices.
- variable_set('error_level', ERROR_REPORTING_DISPLAY_SOME);
+ $config->set('error_level', ERROR_REPORTING_DISPLAY_SOME)->save();
$this->drupalGet('error-test/generate-warnings');
$this->assertResponse(200, t('Received expected HTTP status code.'));
$this->assertNoErrorMessage($error_notice);
@@ -59,7 +60,7 @@ class DrupalErrorHandlerUnitTest extends WebTestBase {
$this->assertErrorMessage($error_user_notice);
// Set error reporting to not show any errors.
- variable_set('error_level', ERROR_REPORTING_HIDE);
+ $config->set('error_level', ERROR_REPORTING_HIDE)->save();
$this->drupalGet('error-test/generate-warnings');
$this->assertResponse(200, t('Received expected HTTP status code.'));
$this->assertNoErrorMessage($error_notice);