SnobbyVirus1973 opened a new issue, #2766:
URL: https://github.com/apache/logging-log4j2/issues/2766
## Description
I want to use ConfigurationBuilder to config a NoSqlAppender, but I can`t
set additionalFields, My code is:
``` java
MongoDb4Provider mongoDb4Provider = MongoDb4Provider.newBuilder()
.setConnectionStringSource("mongodb://localhost:27017/log.test")
.build();
NoSqlAppender mongoDbAppenderBuilder = NoSqlAppender.newBuilder()
.setName("MongoDbAppender")
.setProvider(mongoDb4Provider)
.build()
```
I lookup the source code, and I find NoSqlAppender.Builder class has a
private field called "additionalFields", but is has not setter method;
So I use java reflect to set the value, My code is:
``` java
MongoDb4Provider mongoDb4Provider = MongoDb4Provider.newBuilder()
.setConnectionStringSource("mongodb://localhost:27017/log.test")
.build();
NoSqlAppender.Builder mongoDbAppenderBuilder = NoSqlAppender.newBuilder()
.setName("MongoDbAppender")
.setProvider(mongoDb4Provider)
.setConfiguration(config);
ReflectUtil.setFieldValue(mongoDbAppenderBuilder, "additionalFields", new
KeyValuePair[] {
KeyValuePair.newBuilder().setKey("some_key").setValue("${map:some_key}").build(),
});
NoSqlAppender mongoDbAppender = mongoDbAppenderBuilder.build();
```
It works. But Map Lookup doesn`t work, My do log code is:
``` java
logger.info(new MapMessage(Map.of("some_key", "some_value")));
```
I expect ${map:some_key} can be resolved to some_value, but I get
${map:some_key} in MongoDB`s field. I tried ${map:some_key} $${map:some_key}
%K{some_key} %map{some_key} %MAP{some_key} and none of them worked;
## Configuration
**Version:** 2.23.1
**Operating system:** Windows 11
**JDK:** JDK-17-oracle
Forgive my poor English, English is not my native language.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]