logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Gregory <garydgreg...@gmail.com>
Subject Re: Getter method for retrieving the attributes of an appender from the LoggerContext
Date Tue, 26 Jan 2016 21:15:56 GMT
On Tue, Jan 26, 2016 at 1:06 PM, Apostolis Giannakidis <
ap.giannakidis@gmail.com> wrote:

> Actually, since this seems to be a useful feature, I would love to do the
> patch myself and contribute it to the project, if you don't mind.
>

Do you plan on implementing this for all Appenders?

Gary

>
> On Tue, Jan 26, 2016 at 8:56 PM, Ralph Goers <ralph.goers@dslextreme.com>
> wrote:
>
> > 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 <garydgregory@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 <boards@gmail.com>
> wrote:
> > >
> > >> You could always use reflection to access it for now.
> > >>
> > >> On 26 January 2016 at 14:17, Apostolis Giannakidis <
> > >> ap.giannakidis@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.goers@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.giannakidis@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-unsubscribe@logging.apache.org
> > >>>> For additional commands, e-mail: log4j-user-help@logging.apache.org
> > >>>>
> > >>>>
> > >>>
> > >>
> > >>
> > >>
> > >> --
> > >> Matt Sicker <boards@gmail.com>
> > >>
> > >
> > >
> > >
> > > --
> > > E-Mail: garydgregory@gmail.com | ggregory@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-unsubscribe@logging.apache.org
> > For additional commands, e-mail: log4j-user-help@logging.apache.org
> >
> >
>



-- 
E-Mail: garydgregory@gmail.com | ggregory@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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message