Actually, I kind of like the idea of adding a getAttributes() method to the 
Appender interface. Then each concrete Appender would do:

public void getAttributes() {
    Map<String, String> attributes = new HashMap<>();
    super.getAttributes(attributes):
    attributes.put(“myAttribute1”, “value1”);
    return Collections.unmodifiableMap(attributes);
}



> On Jan 26, 2016, at 1:28 PM, Gary Gregory <garydgreg...@gmail.com> wrote:
> 
> How about adding getters for the fields
> in org.apache.logging.log4j.core.net.AbstractSocketManager?
> 
> Gary
> 
> On Tue, Jan 26, 2016 at 12:20 PM, Matt Sicker <boa...@gmail.com> wrote:
> 
>> You could always use reflection to access it for now.
>> 
>> On 26 January 2016 at 14:17, Apostolis Giannakidis <
>> ap.giannaki...@gmail.com
>>> wrote:
>> 
>>> Thank you very much for the prompt reply Ralph.
>>> 
>>> As far as I can see, the SyslogAppender class does not expose a way to
>>> access these attributes. So, if there is no other way of accessing these
>>> attributes, then I am not able to retrieve the attributes that I want
>> from
>>> the existing SyslogAppender implementation. If I understand correctly,
>>> correct me if I am wrong, I might have to create my own that exposes
>> these
>>> attributes.
>>> 
>>> Apos
>>> 
>>> On Tue, Jan 26, 2016 at 8:03 PM, Ralph Goers <ralph.go...@dslextreme.com
>>> 
>>> wrote:
>>> 
>>>> Not exactly. You can do:
>>>> 
>>>> Appender appender =
>> ctx.getConfiguration().getAppender(“syslogAppender”);
>>>> 
>>>> then you would have to do
>>>> 
>>>> SyslogAppender syslogAppender = (SyslogAppender) appender;
>>>> 
>>>> normally you would probably use instanceof to verify it is actually a
>>>> SyslogAppender.
>>>> 
>>>> Once you have that you can call whatever methods the SyslogAppender
>>>> exposes for getting its attributes. They are not stored in a Map
>> however,
>>>> so you can’t just call a generic getAttribute method.
>>>> 
>>>> Ralph
>>>> 
>>>> 
>>>>> On Jan 26, 2016, at 11:58 AM, Apostolis Giannakidis <
>>>> ap.giannaki...@gmail.com> wrote:
>>>>> 
>>>>> Hello team,
>>>>> 
>>>>> I have created a logger with an appender using the
>> ConfigurationBuilder
>>>> and
>>>>> the AppenderComponentBuilder.
>>>>> 
>>>>> Let's say that this is how I create my appender:
>>>>> 
>>>>> AppenderComponentBuilder appenderBuilder =
>>>>>               builder.newAppender( "syslogAppender", "Syslog" )
>>>>>               .addAttribute( "protocol", "TCP" )
>>>>>               .addAttribute( "host", "localhost" )
>>>>>               .addAttribute( "port", 514 )
>>>>>               .addAttribute( "facility", "LOCAL2" )
>>>>>               .addAttribute( "immediateFlush", true )
>>>>>               .addAttribute( "newLine", true );
>>>>> 
>>>>> Then, after I finish creating the builder I use the
>>>>> Configurator.initialize( builder.build() ) to get the LoggerContext.
>>>>> 
>>>>> Is there any way I can access the attributes of the appender through
>>> the
>>>>> LoggerContext?
>>>>> 
>>>>> For example something like this:
>>>>> 
>>>>> LoggerContext ctx = Configurator.initialize( builder.build() );
>>>>> 
>>>>> String hostname =
>>>>> 
>>>> 
>>> 
>> ctx.getConfiguration()..getAppenders().get("syslogAppender").getAttribute("host");
>>>>> 
>>>>> Thank you all very much for your help.
>>>>> 
>>>>> Apostolis
>>>> 
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> 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>
>> 
> 
> 
> 
> -- 
> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
> Java Persistence with Hibernate, Second Edition
> <http://www.manning.com/bauer3/>
> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> Spring Batch in Action <http://www.manning.com/templier/>
> Blog: http://garygregory.wordpress.com
> Home: http://garygregory.com/
> Tweet! http://twitter.com/GaryGregory



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