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 <[email protected]> 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 <[email protected]> wrote:
>
>> You could always use reflection to access it for now.
>>
>> On 26 January 2016 at 14:17, Apostolis Giannakidis <
>> [email protected]
>>> 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 <[email protected]
>>>
>>> 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 <
>>>> [email protected]> 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: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>>
>>>
>>
>>
>>
>> --
>> Matt Sicker <[email protected]>
>>
>
>
>
> --
> E-Mail: [email protected] | [email protected]
> 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: [email protected]
For additional commands, e-mail: [email protected]