It works to do it like this: gelfBuilder.addComponent(builder.newComponent("KeyValuePair").addAttribute( "key", "foo").addAttribute("value", "bar"));
Is there no simpler way to do it? On Wed, Apr 5, 2017 at 2:01 PM, Mikael Ståldal <mikael.stal...@magine.com> wrote: > But how do you do this for KeyValuePair? > > When I do: > > LayoutComponentBuilder gelfBuilder = builder.newLayout("GelfLayout"); > gelfBuilder.addAttribute("host", "myself"); > gelfBuilder.addComponent(builder.newComponent("foo", "KeyValuePair", "bar")); > > it doesn't work and I get this error message: > > ERROR KeyValuePair contains an invalid element or attribute "name" > > It seems like the problem is that KeyValuePair have a "key" field, but > builder.newComponent() > assumes that it has a "name" field (like Property). > > On Wed, Mar 29, 2017 at 5:46 PM, Ralph Goers <ralph.go...@dslextreme.com> > wrote: > >> Mikael’s solution is correct. Every item in the ConfigurationBuilder is a >> Component. We have “special” Components for things that are always used, >> such as Loggers and Appenders. But we can’t know about every type of >> Component so in those cases you just use the generic Component. >> >> Ralph >> >> > On Mar 29, 2017, at 8:26 AM, Matt Sicker <boa...@gmail.com> wrote: >> > >> > Looks like a bug to me! Here's the issue: a Properties component is >> > injected into a kafka appender, but there is no way to create a >> Property or >> > Properties component directly via the configuration builder API. The top >> > level properties aren't injected in the kafka appender (and manager), so >> > they're unused. >> > >> > Interestingly enough, I don't see a way to inject KeyValuePair >> components >> > either (which is a similar plugin class in log4j-core). >> > >> > Could you make an issue here: https://issues.apache.org/jira >> /browse/LOG4J2 >> > >> > On 29 March 2017 at 09:27, Marvin Geitner <mgeit...@novomind.com> >> wrote: >> > >> >> Hi all, >> >> >> >> I'm trying to configure the Kafka Appender with the programmatic >> >> configuration described in the manuals. So I created the >> >> ConfigurationFactory and set up the AppenderComponentBuilder. >> >> >> >> If I execute the Application I'll get following exception: >> >> >> >> Caused by: org.apache.kafka.common.config.ConfigException: Missing >> >> required configuration "bootstrap.servers" which has no default value. >> >> >> >> Obviously the property "bootstrap.servers" hasn't been set. >> >> >> >> A builder.addProperty("bootstrap.servers", "kafka.host"); doesn't >> work. >> >> In XML the configuration looks like <Property name="bootstrap.servers"> >> >> kafka.host</Property>. >> >> >> >> But how do I set this in java? >> >> >> >> The code looks like the following: >> >> >> >> static Configuration createConfiguration(final String name, >> >> ConfigurationBuilder<BuiltConfiguration> builder) { >> >> >> >> builder.setConfigurationName(name); >> >> builder.setStatusLevel(Level.INFO); >> >> >> >> AppenderComponentBuilder kafkaBuilder = >> builder.newAppender("KafkaLogger >> >> ", "Kafka") >> >> .addAttribute("topic", "testTopic"); >> >> kafkaBuilder.add(builder.newLayout("PatternLayout") >> >> .addAttribute("pattern", "%d{HH:mm:ss:SSS} | >> %logger{20} | >> >> %msg%n%ex{5}")); >> >> >> >> builder.add(kafkaBuilder); >> >> >> >> builder.add(builder.newRootLogger(Level.INFO).add( >> >> builder.newAppenderRef("KafkaLogger"))); >> >> >> >> return builder.build(); >> >> } >> >> >> >> Hope someone can help me. >> >> >> >> Thanks and BR, >> >> Marvin >> >> >> > >> > >> > >> > -- >> > Matt Sicker <boa...@gmail.com> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >> For additional commands, e-mail: log4j-user-h...@logging.apache.org >> >> > > > -- > [image: MagineTV] > > *Mikael Ståldal* > Senior software developer > > *Magine TV* > mikael.stal...@magine.com > Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com > > Privileged and/or Confidential Information may be contained in this > message. If you are not the addressee indicated in this message > (or responsible for delivery of the message to such a person), you may not > copy or deliver this message to anyone. In such case, > you should destroy this message and kindly notify the sender by reply > email. > -- [image: MagineTV] *Mikael Ståldal* Senior software developer *Magine TV* mikael.stal...@magine.com Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email.