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 <mikael.stal...@magine.com> 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 <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.



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

Reply via email to