Re: Kafka Appender with Programmatic Configuration

2017-04-05 Thread Ralph Goers
Probably not without making a specific class to support it. As I said 
previously, the raw component methods are there so that they can configure 
anything. All the specific classes and methods do is hide that in a more user 
friendly interface.

Ralph

> On Apr 5, 2017, at 7:04 AM, Mikael Ståldal  wrote:
> 
> 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 
> 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 
>> 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  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 
>>> 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 
> kafka.host.
> 
> But how do I set this in java?
> 
> The code looks like the following:
> 
>   static Configuration createConfiguration(final String name,
> ConfigurationBuilder 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 
>>> 
>>> 
>>> 
>>> -
>>> 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 

Re: Kafka Appender with Programmatic Configuration

2017-04-05 Thread Mikael Ståldal
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 
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 
> 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  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 
>> 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 
>> >> kafka.host.
>> >>
>> >> But how do I set this in java?
>> >>
>> >> The code looks like the following:
>> >>
>> >>static Configuration createConfiguration(final String name,
>> >> ConfigurationBuilder 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 
>>
>>
>>
>> -
>> 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.


Re: Kafka Appender with Programmatic Configuration

2017-04-05 Thread Mikael Ståldal
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 
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  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  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 
> >> kafka.host.
> >>
> >> But how do I set this in java?
> >>
> >> The code looks like the following:
> >>
> >>static Configuration createConfiguration(final String name,
> >> ConfigurationBuilder 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 
>
>
>
> -
> 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.


Re: Kafka Appender with Programmatic Configuration

2017-03-31 Thread Mikael Ståldal
https://issues.apache.org/jira/browse/LOG4J2-1860

On Thu, Mar 30, 2017 at 5:27 PM, Matt Sicker <boa...@gmail.com> wrote:

> I think so. That'd be less confusing.
>
> On 30 March 2017 at 02:43, Mikael Ståldal <mikael.stal...@magine.com>
> wrote:
>
> > 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  > > > >> name="bootstrap.servers"> kafka.host.
> > > > >>
> > > > >> But how do I set this in java?
> > > > >>
> > > > >> The code looks like the following:
> > > > >>
> > > > >>static Configuration createConfiguration(final String name,
> > > > >> ConfigurationBuilder builder) {
> > > > >>
> > > > >>builder.setConfigurationName(name);
> > > > >>builder.setStatusLevel(Level.INFO);
> > > > >>
> > > > >>AppenderComponentBuilder kafkaBuilder =
> > > > >> builder.newAppender("KafkaLogger ", "Kafka")
> > > > >>.addAttribute("topic", "testTopic");
> > > > >>   

Re: Kafka Appender with Programmatic Configuration

2017-03-30 Thread Matt Sicker
I think so. That'd be less confusing.

On 30 March 2017 at 02:43, Mikael Ståldal <mikael.stal...@magine.com> wrote:

> 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  > > >> name="bootstrap.servers"> kafka.host.
> > > >>
> > > >> But how do I set this in java?
> > > >>
> > > >> The code looks like the following:
> > > >>
> > > >>static Configuration createConfiguration(final String name,
> > > >> ConfigurationBuilder 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.
>



-- 
Matt Sicker <boa...@gmail.com>


Re: Kafka Appender with Programmatic Configuration

2017-03-30 Thread Mikael Ståldal
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  > >> name="bootstrap.servers"> kafka.host.
> > >>
> > >> But how do I set this in java?
> > >>
> > >> The code looks like the following:
> > >>
> > >>static Configuration createConfiguration(final String name,
> > >> ConfigurationBuilder 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.


Re: Kafka Appender with Programmatic Configuration

2017-03-29 Thread Matt Sicker
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  >> name="bootstrap.servers"> kafka.host.
> >>
> >> But how do I set this in java?
> >>
> >> The code looks like the following:
> >>
> >>static Configuration createConfiguration(final String name,
> >> ConfigurationBuilder 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>


Re: Kafka Appender with Programmatic Configuration

2017-03-29 Thread Ralph Goers
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  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  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 
>> kafka.host.
>> 
>> But how do I set this in java?
>> 
>> The code looks like the following:
>> 
>>static Configuration createConfiguration(final String name,
>> ConfigurationBuilder 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 



-
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org



Re: Kafka Appender with Programmatic Configuration

2017-03-29 Thread Mikael Ståldal
But it would be nice to have a simpler way to do that.

On Wed, Mar 29, 2017 at 5:28 PM, Mikael Ståldal 
wrote:

> Have you tried this:
>
> kafkaBuilder.addComponent(builder.newComponent("bootstrap.servers", 
> "Property", "kafka.host:*9092*"));
>
>
> On Wed, Mar 29, 2017 at 5:26 PM, Matt Sicker  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  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 
>> > kafka.host.
>> >
>> > But how do I set this in java?
>> >
>> > The code looks like the following:
>> >
>> > static Configuration createConfiguration(final String name,
>> > ConfigurationBuilder 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 
>>
>
>
>
> --
> [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.


Re: Kafka Appender with Programmatic Configuration

2017-03-29 Thread Mikael Ståldal
Have you tried this:

kafkaBuilder.addComponent(builder.newComponent("bootstrap.servers",
"Property", "kafka.host:*9092*"));


On Wed, Mar 29, 2017 at 5:26 PM, Matt Sicker  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  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 
> > kafka.host.
> >
> > But how do I set this in java?
> >
> > The code looks like the following:
> >
> > static Configuration createConfiguration(final String name,
> > ConfigurationBuilder 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 
>



-- 
[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.


Re: Kafka Appender with Programmatic Configuration

2017-03-29 Thread Matt Sicker
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  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 
> kafka.host.
>
> But how do I set this in java?
>
> The code looks like the following:
>
> static Configuration createConfiguration(final String name,
> ConfigurationBuilder 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