Would it make sense to have shortcuts for Property and KeyValuePair, since they are generic and used by several appenders/layouts?
On Wed, Mar 29, 2017 at 7:12 PM, Matt Sicker <boa...@gmail.com> wrote: > Oh, I see. That's an interesting API... > > On 29 March 2017 at 10:49, Marvin Geitner <mgeit...@novomind.com> wrote: > > > Thank you very much, > > > > kafkaBuilder.addComponent(builder.newComponent("bootstrap.servers", > > "Property", "kafka.host:*9092*")); > > > > is working. > > > > BR > > Marvin > > > > -----Ursprüngliche Nachricht----- > > Von: Ralph Goers [mailto:ralph.go...@dslextreme.com] > > Gesendet: Mittwoch, 29. März 2017 17:46 > > An: Log4J Users List <log4j-user@logging.apache.org> > > Betreff: Re: Kafka Appender with Programmatic Configuration > > > > 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 > > > > > > > -- > Matt Sicker <boa...@gmail.com> > -- [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.