No, it's not. We just log it as a string.
On Fri, Aug 14, 2020 at 7:22 PM Ralph Goers <ralph.go...@dslextreme.com> wrote: > Is the Message passed to the LogEvent a MapMessage? > > Ralph > > > On Aug 14, 2020, at 9:40 AM, Naz S <sn1.naze...@gmail.com> wrote: > > > > Volkan, > > > > Wondering if the following case is supported by the logstash layout: > > > > Let's say logEvent.getMessage() contains the message like " key1=value1 > > key2=value2 someString". Then I want to parse that message and put to > json: > > { > > "timestamp" : "x", > > "key1" : "value1", > > "key2" : "value2", > > "message" : "someString", > > .... > > } > > > > On Fri, Aug 14, 2020 at 5:23 PM Volkan Yazıcı <volkan.yaz...@gmail.com> > > wrote: > > > >> JsonTemplateLayout definitely supports access to MapMessage. Just try > >> searching for "MapMessage" in the documentation: > >> > >> > https://github.com/apache/logging-log4j2/blob/master/src/site/asciidoc/manual/json-template-layout.adoc > >> > >> On Fri, Aug 14, 2020 at 5:14 PM Ralph Goers <ralph.go...@dslextreme.com > > > >> wrote: > >> > >>> Volkan - Do you not support the MapMessage? That is the standard way > to > >>> handle this and is what Log4j Audit does. It uses an AuditMessage that > >>> extends MapMessage. In fact, I should be able to construct a template > >> for > >>> AuditMessage to use with JsonTemplateLayout in Log4j-Audit. If I cannot > >>> then there is a problem. I should point out that with auditing I might > >>> have a hundred or more potential keys depending on how many audit > events > >> I > >>> have defined. I would not want to create a layout that explicitly > >> specifies > >>> them all. But for a MapMessage I don’t see why I should have to. > >>> > >>> Ralph > >>> > >>>> On Aug 14, 2020, at 7:07 AM, Volkan Yazıcı <volkan.yaz...@gmail.com> > >>> wrote: > >>>> > >>>> Hello Naz, > >>>> > >>>> [Sorry for my late response.] > >>>> > >>>> I am the author of LogstashLayout and also its successor > >>> JsonTemplateLayout > >>>> which will be merged into the release-2.x branch of Log4j (hopefully) > >> in > >>> a > >>>> week or two. > >>>> > >>>> LogstashLayout **does** support blank value elimination, you just need > >> to > >>>> set emptyPropertyExclusionEnabled to true. > >>>> > >>>> I have excluded this feature in JsonTemplateLayout for two main > >> reasons: > >>>> > >>>> 1. It incurs an extra runtime cost. > >>>> 2. Most of the time you don't care. You persist logs in a storage > >>> system, > >>>> e.g., ELK stack, and there null value elimination is provided out of > >>> the > >>>> box by the storage engine in the most efficient way. > >>>> > >>>> Let me know if I can help you further. > >>>> > >>>> Kind regards. > >>>> > >>>> > >>>> On Fri, Aug 14, 2020 at 2:19 PM Naz S <sn1.naze...@gmail.com> wrote: > >>>> > >>>>> So far I have looked at the logstash layout ( > >>>>> https://github.com/vy/log4j2-logstash-layout). It seems it doesn't > >> work > >>>>> properly for my use case. > >>>>> > >>>>> Basically if I have key,value pairs I log them into the LogEvent > >>> message > >>>>> field, then I parse them while generating JSON objects. The key,value > >>> pairs > >>>>> are not known in advance; sometimes they are null; If the keys are > >>> null, I > >>>>> don't want to log them at all. Are there any other ways to do this? > >>>>> > >>>>> On Thu, Aug 13, 2020 at 3:38 PM Naz S <sn1.naze...@gmail.com> wrote: > >>>>> > >>>>>> Thank you for your swift response, really appreciate it. > >>>>>> > >>>>>> Wondering when the 2.14.0 release will come out? > >>>>>> > >>>>>> On Wed, Aug 12, 2020 at 4:59 PM Ralph Goers < > >>> ralph.go...@dslextreme.com> > >>>>>> wrote: > >>>>>> > >>>>>>> JsonTemplateLayout hasn’t been merged to the release-2.x branch but > >> it > >>>>>>> will be so that it can be included in the 2.14.0 release. > >>>>>>> > >>>>>>> Ralph > >>>>>>> > >>>>>>>> On Aug 12, 2020, at 7:47 AM, Carter Kozak <cko...@ckozak.net> > >> wrote: > >>>>>>>> > >>>>>>>> Hi Naz, > >>>>>>>> > >>>>>>>> Volkan has contributed a fantastic json template layout that I > >> expect > >>>>>>> will do what you want, however it has not been released yet. > >>>>>>>> https://github.com/apache/logging-log4j2/pull/335 > >>>>>>>> > >>>>>>>> This discussion from the mailing list provides several options > >> which > >>>>>>> may be relevant to your use case: > >>>>>>>> > >>>>>>> > >>>>> > >>> > >> > https://lists.apache.org/thread.html/r538bb480c6d92813224b6a207e34210cccebc01e8d1781943d0ce32d%40%3Clog4j-user.logging.apache.org%3E > >>>>>>>> > >>>>>>>>> But my custom json layout doesn't write into a file. Do I have to > >>>>>>> write a file appender for that? > >>>>>>>> > >>>>>>>> Layout implementations can be configured with any appender, the > >>>>>>> existing file based appenders > >>>>>>>> work with custom layouts. The layout is responsible for converting > >> a > >>>>>>> LogEvent into a format (e.g. bytes) that > >>>>>>>> can be written to an appender (file, socket, standard out, etc) > >>>>> without > >>>>>>> being aware of the appenders > >>>>>>>> implementation details. > >>>>>>>> > >>>>>>>> Best, > >>>>>>>> -ck > >>>>>>>> > >>>>>>>> On Wed, Aug 12, 2020, at 09:56, Naz S wrote: > >>>>>>>>> Hi, > >>>>>>>>> > >>>>>>>>> I'm trying to use JSON layout for a logging format. When I use > the > >>>>>>> default > >>>>>>>>> JSON Layout, I see that there are some fields which are > >> unnecessary > >>>>> to > >>>>>>> me > >>>>>>>>> (for example, loggerFqcn, endOfBatch, etc). > >>>>>>>>> > >>>>>>>>> Then I decided to implement a custom JSON layout. But I see that > >>>>>>>>> JacksonFactory is not visible outside the package. Now I get only > >>>>>>> necessary > >>>>>>>>> fields from LogEvent and generate JSON format using JSON > >> generator. > >>>>>>> Every > >>>>>>>>> configuration is done by code. But ultimately I want to configure > >>>>>>> fields in > >>>>>>>>> log4j2.xml file. Any suggestions? > >>>>>>>>> > >>>>>>>>> Also I would like to write logs into a log file. But my custom > >> json > >>>>>>> layout > >>>>>>>>> doesn't write into a file. Do I have to write a file appender for > >>>>> that? > >>>>>>>>> > >>>>>>>>> Many thanks, > >>>>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >> --------------------------------------------------------------------- > >>>>>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > >>>>>>> For additional commands, e-mail: > log4j-user-h...@logging.apache.org > >>>>>>> > >>>>>>> > >>>>> > >>> > >>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > >>> For additional commands, e-mail: log4j-user-h...@logging.apache.org > >>> > >>> > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > For additional commands, e-mail: log4j-user-h...@logging.apache.org > >