|
18 | 18 | */
|
19 | 19 | package org.elasticsearch.common.settings;
|
20 | 20 |
|
| 21 | +import org.apache.logging.log4j.Level; |
| 22 | +import org.apache.logging.log4j.LogManager; |
| 23 | +import org.apache.logging.log4j.Logger; |
| 24 | +import org.apache.logging.log4j.core.LogEvent; |
| 25 | +import org.elasticsearch.cluster.metadata.IndexMetaData; |
21 | 26 | import org.elasticsearch.common.collect.Tuple;
|
| 27 | +import org.elasticsearch.common.logging.Loggers; |
22 | 28 | import org.elasticsearch.common.settings.AbstractScopedSettings.SettingUpdater;
|
23 | 29 | import org.elasticsearch.common.settings.Setting.Property;
|
24 | 30 | import org.elasticsearch.common.unit.ByteSizeUnit;
|
25 | 31 | import org.elasticsearch.common.unit.ByteSizeValue;
|
26 | 32 | import org.elasticsearch.common.unit.TimeValue;
|
| 33 | +import org.elasticsearch.index.IndexSettings; |
27 | 34 | import org.elasticsearch.monitor.jvm.JvmInfo;
|
28 | 35 | import org.elasticsearch.test.ESTestCase;
|
| 36 | +import org.elasticsearch.test.MockLogAppender; |
| 37 | +import org.elasticsearch.test.junit.annotations.TestLogging; |
29 | 38 |
|
30 | 39 | import java.util.Arrays;
|
31 | 40 | import java.util.Collections;
|
|
40 | 49 | import java.util.stream.Collectors;
|
41 | 50 | import java.util.stream.Stream;
|
42 | 51 |
|
| 52 | +import static org.elasticsearch.index.IndexSettingsTests.newIndexMeta; |
43 | 53 | import static org.hamcrest.Matchers.containsString;
|
44 | 54 | import static org.hamcrest.Matchers.equalTo;
|
45 | 55 | import static org.hamcrest.Matchers.hasSize;
|
@@ -1092,4 +1102,35 @@ public void testNonSecureSettingInKeystore() {
|
1092 | 1102 | assertThat(e.getMessage(), containsString("must be stored inside elasticsearch.yml"));
|
1093 | 1103 | }
|
1094 | 1104 |
|
| 1105 | + @TestLogging(value="org.elasticsearch.common.settings.IndexScopedSettings:INFO", |
| 1106 | + reason="to ensure we log INFO-level messages from IndexScopedSettings") |
| 1107 | + public void testLogSettingUpdate() throws Exception { |
| 1108 | + final IndexMetaData metaData = newIndexMeta("index1", |
| 1109 | + Settings.builder().put(IndexSettings.INDEX_REFRESH_INTERVAL_SETTING.getKey(), "20s").build()); |
| 1110 | + final IndexSettings settings = new IndexSettings(metaData, Settings.EMPTY); |
| 1111 | + |
| 1112 | + final MockLogAppender mockLogAppender = new MockLogAppender(); |
| 1113 | + mockLogAppender.addExpectation(new MockLogAppender.SeenEventExpectation( |
| 1114 | + "message", |
| 1115 | + "org.elasticsearch.common.settings.IndexScopedSettings", |
| 1116 | + Level.INFO, |
| 1117 | + "updating [index.refresh_interval] from [20s] to [10s]") { |
| 1118 | + @Override |
| 1119 | + public boolean innerMatch(LogEvent event) { |
| 1120 | + return event.getMarker().getName().equals(" [index1]"); |
| 1121 | + } |
| 1122 | + }); |
| 1123 | + mockLogAppender.start(); |
| 1124 | + final Logger logger = LogManager.getLogger(IndexScopedSettings.class); |
| 1125 | + try { |
| 1126 | + Loggers.addAppender(logger, mockLogAppender); |
| 1127 | + settings.updateIndexMetaData(newIndexMeta("index1", |
| 1128 | + Settings.builder().put(IndexSettings.INDEX_REFRESH_INTERVAL_SETTING.getKey(), "10s").build())); |
| 1129 | + |
| 1130 | + mockLogAppender.assertAllExpectationsMatched(); |
| 1131 | + } finally { |
| 1132 | + Loggers.removeAppender(logger, mockLogAppender); |
| 1133 | + mockLogAppender.stop(); |
| 1134 | + } |
| 1135 | + } |
1095 | 1136 | }
|
0 commit comments