JIRA issue created: https://issues.apache.org/jira/browse/LOG4J2-3197

I think that the API key prefix is outside of the JSON, so the end result is not proper JSON. I suppose that the Datadog service will pre-parse the received event to extract the API key, and then parse the rest as JSON. Like this:

MY_API_KEY_HERE {"some":"json","object":"here"}

/Mikael


On 2021-11-27 11:35, Volkan Yazıcı wrote:
Thanks for the heads up Mikael! I am pretty sure JSON Template Layout can
suffice this goal – if it can't, I will make sure it can. From the Datadog
documentation you have shared
<https://docs.datadoghq.com/logs/log_collection/java>, the expected JSON
structure is not clear. They have used logstash-logback-encoder's prefix
feature
<https://github.com/logfellow/logstash-logback-encoder#prefixsuffixseparator>,
yet I couldn't understand how does it "prefix" a JSON object. For instance,
how can you prefix a JSON array with a string!? Nevertheless, I guess I
need to run this myself locally and figure that detail out. I will really
appreciate it if you can create a JIRA ticket and assign it to my name.
After making sure it works, I will get in touch with the Datadog team too.

On Sat, Nov 27, 2021 at 11:10 AM Mikael Ståldal <[email protected]> wrote:

The documentation for Datadog contains information on how to setup Log4j
2 to send logs to Datadog. However, for the agentless configuration, it
says its not possible with Log4j 2 and resorts to bridging to Logback.


https://docs.datadoghq.com/logs/log_collection/java/?tab=log4j2#agentless-logging

The problem is that the JSON formatted log events needs to be prefixed
with an API key (outside of the JSON structure). This is possible with
Logback, but supposedly not with Log4j 2.

This configuration is arguably a bit strange, but it would be good if
Log4j 2 could support it, since it is likely a relevant use case.

Maybe this is already possible with recent versions of Log4j 2? If not,
I believe it should be easy to add.


For the standard configuration, Datadog recommends the JSONLayout:


https://docs.datadoghq.com/logs/log_collection/java/?tab=log4j2#configure-your-logger

Maybe the new JsonPatternLayout would be more suitable?

/Mikael


Reply via email to