Thanks Ralph. Now I understand what you were mentioning in the previous
comment. I incorporate the changes in my patch, and thanks for the code as
well, really helpful.
Thanks!
Hari
--
Hari Shreedharan
On Sunday, February 19, 2012 at 2:06 PM, Ralph Goers wrote:
> Nice - I didn't realize that your email was generated by Jira. I'll repost my
> comment there.
>
> Ralph
>
>
> On Feb 19, 2012, at 2:02 PM, Ralph Goers wrote:
>
> >
> > On Feb 19, 2012, at 11:20 AM, Hari Shreedharan wrote:
> >
> > >
> > >
> > > > On 2012-02-19 16:30:08, Ralph Goers wrote:
> > > > > I have a suspicion that if you actually try to use this from an
> > > > > application via a configuration file you won't be able to. I don't
> > > > > see any setter methods for the host and port.
> > > >
> > > >
> > >
> > >
> > > The reason I didn't put setters for host and port are that the AvroClient
> > > object can be created only if know the hostname and port. So the
> > > constructor needs these arguments. If the hostname and port change
> > > because the config changes, the application can simply create a new
> > > object of the Log4jAppender(resetting the port and hostname using setters
> > > will have the same effect - since internally we would be doing the same
> > > thing, by replacing the protocolClient). For example this would be how
> > > the setter would look:
> > >
> > > public synchronized void setHostnameAndPort(String hostname, int port){
> > > this.hostname = hostname;
> > > this.port = port
> > > protocolClient = null; //This basically to make sure a new AvroClient is
> > > created, considering the new setting.
> > > }
> > >
> >
> >
> >
> > I think you are missing the point. Have you tried creating a log4j.xml or
> > log4j.properties and declaring the FlumeAvroAppender in it to see if it
> > will work? The vast majority of Log4j users do not programmatically declare
> > their appenders. To require that makes the Appender almost useless.
> >
> > FWIW, I've written a Flume appender (for OG) for Logback for my employer
> > but I haven't published it anywhere. I've also written a FlumeAvroAppender
> > for Log4j 2 for both OG and NG. See
> > http://people.apache.org/~rgoers/log4j2/manual/appenders.html#FlumeAvroAppender.
> > Feel free to review the code - the NG source is at
> > https://svn.apache.org/repos/asf/logging/log4j/log4j2/trunk/log4j2-flume-ng/.
> > Any suggestions you have would be most welcome.
> >
> > Ralph