15
15
import org .apache .logging .log4j .core .config .Configurator ;
16
16
import org .elasticsearch .cli .UserException ;
17
17
import org .elasticsearch .common .CheckedConsumer ;
18
+ import org .elasticsearch .common .ParseField ;
18
19
import org .elasticsearch .common .io .PathUtils ;
19
20
import org .elasticsearch .common .settings .Settings ;
20
21
import org .elasticsearch .common .util .concurrent .ThreadContext ;
22
+ import org .elasticsearch .common .xcontent .LoggingDeprecationHandler ;
21
23
import org .elasticsearch .env .Environment ;
22
24
import org .elasticsearch .index .shard .ShardId ;
23
25
import org .elasticsearch .tasks .Task ;
@@ -76,7 +78,7 @@ public void tearDown() throws Exception {
76
78
}
77
79
78
80
public void testDeprecatedMessageWithoutXOpaqueId () throws IOException {
79
- final DeprecationLogger testLogger = DeprecationLogger .getLogger ("test" );
81
+ final DeprecationLogger testLogger = DeprecationLogger .getLogger ("org.elasticsearch. test" );
80
82
81
83
testLogger .deprecate (DeprecationCategory .OTHER , "a key" , "deprecated message1" );
82
84
@@ -91,7 +93,7 @@ public void testDeprecatedMessageWithoutXOpaqueId() throws IOException {
91
93
allOf (
92
94
hasEntry ("event.dataset" , "elasticsearch.deprecation" ),
93
95
hasEntry ("log.level" , "DEPRECATION" ),
94
- hasEntry ("log.logger" , "deprecation.test" ),
96
+ hasEntry ("log.logger" , "org.elasticsearch. deprecation.test" ),
95
97
hasEntry ("elasticsearch.cluster.name" , "elasticsearch" ),
96
98
hasEntry ("elasticsearch.node.name" , "sample-name" ),
97
99
hasEntry ("message" , "deprecated message1" ),
@@ -111,7 +113,7 @@ public void testDeprecatedMessageWithoutXOpaqueId() throws IOException {
111
113
public void testCompatibleLog () throws Exception {
112
114
withThreadContext (threadContext -> {
113
115
threadContext .putHeader (Task .X_OPAQUE_ID , "someId" );
114
- final DeprecationLogger testLogger = DeprecationLogger .getLogger ("test" );
116
+ final DeprecationLogger testLogger = DeprecationLogger .getLogger ("org.elasticsearch. test" );
115
117
testLogger .deprecate (DeprecationCategory .OTHER ,"someKey" , "deprecated message1" )
116
118
.compatibleApiWarning ("compatibleKey" ,"compatible API message" );
117
119
@@ -131,7 +133,7 @@ public void testCompatibleLog() throws Exception {
131
133
hasEntry ("event.dataset" , "elasticsearch.deprecation" ),
132
134
hasEntry ("data_stream.dataset" , "elasticsearch.deprecation" ),
133
135
hasEntry ("data_stream.type" , "logs" ),
134
- hasEntry ("log.logger" , "deprecation.test" ),
136
+ hasEntry ("log.logger" , "org.elasticsearch. deprecation.test" ),
135
137
hasEntry ("ecs.version" , DeprecatedMessage .ECS_VERSION ),
136
138
hasEntry ("elasticsearch.cluster.name" , "elasticsearch" ),
137
139
hasEntry ("elasticsearch.node.name" , "sample-name" ),
@@ -146,7 +148,7 @@ public void testCompatibleLog() throws Exception {
146
148
hasEntry ("event.dataset" , "elasticsearch.deprecation" ),
147
149
hasEntry ("data_stream.dataset" , "elasticsearch.deprecation" ),
148
150
hasEntry ("data_stream.type" , "logs" ),
149
- hasEntry ("log.logger" , "deprecation.test" ),
151
+ hasEntry ("log.logger" , "org.elasticsearch. deprecation.test" ),
150
152
hasEntry ("ecs.version" , DeprecatedMessage .ECS_VERSION ),
151
153
hasEntry ("elasticsearch.cluster.name" , "elasticsearch" ),
152
154
hasEntry ("elasticsearch.node.name" , "sample-name" ),
@@ -163,10 +165,70 @@ public void testCompatibleLog() throws Exception {
163
165
});
164
166
}
165
167
168
+ public void testParseFieldEmittingLogs () throws Exception {
169
+ withThreadContext (threadContext -> {
170
+ threadContext .putHeader (Task .X_OPAQUE_ID , "someId" );
171
+
172
+ ParseField deprecatedField = new ParseField ("new_name" , "deprecated_name" );
173
+ assertTrue (deprecatedField .match ("deprecated_name" , LoggingDeprecationHandler .INSTANCE ));
174
+
175
+ ParseField deprecatedField2 = new ParseField ("new_name" , "deprecated_name2" );
176
+ assertTrue (deprecatedField2 .match ("deprecated_name2" , LoggingDeprecationHandler .INSTANCE ));
177
+
178
+ final Path path = PathUtils .get (
179
+ System .getProperty ("es.logs.base_path" ),
180
+ System .getProperty ("es.logs.cluster_name" ) + "_deprecated.json"
181
+ );
182
+
183
+ try (Stream <Map <String , String >> stream = JsonLogsStream .mapStreamFrom (path )) {
184
+ List <Map <String , String >> jsonLogs = stream .collect (Collectors .toList ());
185
+
186
+ assertThat (
187
+ jsonLogs ,
188
+ contains (
189
+ // deprecation log for field deprecated_name
190
+ allOf (
191
+ hasEntry ("log.level" , "DEPRECATION" ),
192
+ hasEntry ("event.dataset" , "elasticsearch.deprecation" ),
193
+ hasEntry ("data_stream.dataset" , "elasticsearch.deprecation" ),
194
+ hasEntry ("data_stream.type" , "logs" ),
195
+ hasEntry ("log.logger" , "org.elasticsearch.deprecation.common.ParseField" ),
196
+ hasEntry ("ecs.version" , DeprecatedMessage .ECS_VERSION ),
197
+ hasEntry ("elasticsearch.cluster.name" , "elasticsearch" ),
198
+ hasEntry ("elasticsearch.node.name" , "sample-name" ),
199
+ hasEntry ("message" , "Deprecated field [deprecated_name] used, expected [new_name] instead" ),
200
+ hasEntry (DeprecatedMessage .KEY_FIELD_NAME , "deprecated_field_deprecated_name" ),
201
+ hasEntry (DeprecatedMessage .X_OPAQUE_ID_FIELD_NAME , "someId" ),
202
+ hasEntry ("elasticsearch.event.category" , "api" )
203
+ ),
204
+ // deprecation log for field deprecated_name2
205
+ allOf (
206
+ hasEntry ("log.level" , "DEPRECATION" ),
207
+ hasEntry ("event.dataset" , "elasticsearch.deprecation" ),
208
+ hasEntry ("data_stream.dataset" , "elasticsearch.deprecation" ),
209
+ hasEntry ("data_stream.type" , "logs" ),
210
+ hasEntry ("log.logger" , "org.elasticsearch.deprecation.common.ParseField" ),
211
+ hasEntry ("ecs.version" , DeprecatedMessage .ECS_VERSION ),
212
+ hasEntry ("elasticsearch.cluster.name" , "elasticsearch" ),
213
+ hasEntry ("elasticsearch.node.name" , "sample-name" ),
214
+ hasEntry ("message" , "Deprecated field [deprecated_name2] used, expected [new_name] instead" ),
215
+ hasEntry (DeprecatedMessage .KEY_FIELD_NAME , "deprecated_field_deprecated_name2" ),
216
+ hasEntry (DeprecatedMessage .X_OPAQUE_ID_FIELD_NAME , "someId" ),
217
+ hasEntry ("elasticsearch.event.category" , "api" )
218
+ )
219
+ )
220
+ );
221
+ }
222
+
223
+ assertWarnings ("Deprecated field [deprecated_name] used, expected [new_name] instead" ,
224
+ "Deprecated field [deprecated_name2] used, expected [new_name] instead" );
225
+ });
226
+ }
227
+
166
228
public void testDeprecatedMessage () throws Exception {
167
229
withThreadContext (threadContext -> {
168
230
threadContext .putHeader (Task .X_OPAQUE_ID , "someId" );
169
- final DeprecationLogger testLogger = DeprecationLogger .getLogger ("test" );
231
+ final DeprecationLogger testLogger = DeprecationLogger .getLogger ("org.elasticsearch. test" );
170
232
testLogger .deprecate (DeprecationCategory .OTHER , "someKey" , "deprecated message1" );
171
233
172
234
final Path path = PathUtils .get (
@@ -183,7 +245,7 @@ public void testDeprecatedMessage() throws Exception {
183
245
allOf (
184
246
hasEntry ("event.dataset" , "elasticsearch.deprecation" ),
185
247
hasEntry ("log.level" , "DEPRECATION" ),
186
- hasEntry ("log.logger" , "deprecation.test" ),
248
+ hasEntry ("log.logger" , "org.elasticsearch. deprecation.test" ),
187
249
hasEntry ("elasticsearch.cluster.name" , "elasticsearch" ),
188
250
hasEntry ("elasticsearch.node.name" , "sample-name" ),
189
251
hasEntry ("message" , "deprecated message1" ),
@@ -374,7 +436,7 @@ public void testJsonInStacktraceMessageIsNotSplitted() throws IOException {
374
436
375
437
376
438
public void testDuplicateLogMessages () throws Exception {
377
- final DeprecationLogger deprecationLogger = DeprecationLogger .getLogger ("test" );
439
+ final DeprecationLogger deprecationLogger = DeprecationLogger .getLogger ("org.elasticsearch. test" );
378
440
379
441
// For the same key and X-Opaque-ID deprecation should be once
380
442
withThreadContext (threadContext -> {
@@ -393,7 +455,7 @@ public void testDuplicateLogMessages() throws Exception {
393
455
allOf (
394
456
hasEntry ("event.dataset" , "elasticsearch.deprecation" ),
395
457
hasEntry ("log.level" , "DEPRECATION" ),
396
- hasEntry ("log.logger" , "deprecation.test" ),
458
+ hasEntry ("log.logger" , "org.elasticsearch. deprecation.test" ),
397
459
hasEntry ("elasticsearch.cluster.name" , "elasticsearch" ),
398
460
hasEntry ("elasticsearch.node.name" , "sample-name" ),
399
461
hasEntry ("message" , "message1" ),
@@ -425,7 +487,7 @@ public void testDuplicateLogMessages() throws Exception {
425
487
allOf (
426
488
hasEntry ("event.dataset" , "elasticsearch.deprecation" ),
427
489
hasEntry ("log.level" , "DEPRECATION" ),
428
- hasEntry ("log.logger" , "deprecation.test" ),
490
+ hasEntry ("log.logger" , "org.elasticsearch. deprecation.test" ),
429
491
hasEntry ("elasticsearch.cluster.name" , "elasticsearch" ),
430
492
hasEntry ("elasticsearch.node.name" , "sample-name" ),
431
493
hasEntry ("message" , "message1" ),
@@ -435,7 +497,7 @@ public void testDuplicateLogMessages() throws Exception {
435
497
allOf (
436
498
hasEntry ("event.dataset" , "elasticsearch.deprecation" ),
437
499
hasEntry ("log.level" , "DEPRECATION" ),
438
- hasEntry ("log.logger" , "deprecation.test" ),
500
+ hasEntry ("log.logger" , "org.elasticsearch. deprecation.test" ),
439
501
hasEntry ("elasticsearch.cluster.name" , "elasticsearch" ),
440
502
hasEntry ("elasticsearch.node.name" , "sample-name" ),
441
503
hasEntry ("message" , "message1" ),
0 commit comments