You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by Mark Womack <mw...@bevocal.com> on 2002/06/26 19:47:43 UTC

Chainsaw modifications to support SocketHubAppender (and other ap pender types)

Enclosed is a zip file that contains new and modified to the existing
Chainsaw (main cvs branch) code to specifically support SocketHubAppenders
and to allow future enhancements to support other appender types as well.  I
am submitting this here instead of checking it into cvs directly to solicit
feedback and discussion on the design and changes.  Oliver is the lead and
author of Chainsaw, so I am obviously very interested in what he has to say.
If these we like these changes, I will check them into cvs at that time.

The zip file contains the files and a jar file.  You can put the jar file
before the current log4j jar in your classpath and try this functionality
out right now.  Use at your own risk, these changes have not been
extensively tested.

General overview:

- LoggingReceiver becomes an interface that all logging receiver type
classes must implement.  Provides to methods to start and stop a receiver,
etc.
- ReceiverFactory is a new interface that all receiver factories must
implement.  ReceiverFactory will be used to create instances of a specific
logging receiver class.  There are methods that provide for programmatic
creation via parameters and creation via gui configuration.

With the above interfaces, it is possible to create
LoggingReceiver/ReceiverFactory classes for any type of logging source.  I
created 2 types:

- SocketReceiver is basically what LoggingReceiver used to be.  It supports
connections initiated by SocketAppenders.  There is some extra code to keep
track of all the connections on a given port.
- SocketReceiverFactory is used to create specific instance of
SocketReceiver.  It contains a dialog that is used to collect the port
number from the user which is then used to create an instance.
- SocketHubReceiver is a new logging receiver.  It supports connections to
SocketHubAppenders.
- SocketHubReceiverFactory is used to create specific instances of
SocketHubReceiver.  It contains a dialog that is used to collect the host
name and port number from the user which is then used to create an instance.
- Main has been modified to add a new "Connect" menu.  It uses a new
ConfigureReceiverAction to use specific instances of ReceiverFactory objects
to let the user configure and create new logging receiver.  The new
receivers are attached to the main window and table model and start
executing.

Even if folks like these changes, they still need more refinement and clean
up.  I am willing to take this on as I want to see this enhancement in
Chainsaw (and LF5 for that matter).

I would like feedback from folks about the new
LoggingReceiver/ReceiverFactory interfaces/classes.  I would really like it
if someone created LoggingReceiver/ReceiverFactory classes for JMSAppender
or the udp multicast appender we talked about a long time ago.  That would
be a test of the design and would create some generally useful code.

Please let me know your feedback.

-Mark

 <<chainsaw_mods_v2.zip>> 

RE: Chainsaw modifications to support SocketHubAppender (and other appender types)

Posted by Oliver Burn <ol...@puppycrawl.com>.
Mark,

I will look at this over the weekend (swamped at work). The approach you outline
sounds good.

Regards,
Oliver

> -----Original Message-----
> From: Mark Womack [mailto:mwomack@bevocal.com]
> Sent: Thursday, 27 June 2002 03:48
> To: 'Log4J Developers List'
> Subject: Chainsaw modifications to support SocketHubAppender (and other
> appender types)
> 
> 
> Enclosed is a zip file that contains new and modified to the existing
> Chainsaw (main cvs branch) code to specifically support SocketHubAppenders
> and to allow future enhancements to support other appender types as well.  I
> am submitting this here instead of checking it into cvs directly to solicit
> feedback and discussion on the design and changes.  Oliver is the lead and
> author of Chainsaw, so I am obviously very interested in what he has to say.
> If these we like these changes, I will check them into cvs at that time.
> 
> The zip file contains the files and a jar file.  You can put the jar file
> before the current log4j jar in your classpath and try this functionality
> out right now.  Use at your own risk, these changes have not been
> extensively tested.
> 
> General overview:
> 
> - LoggingReceiver becomes an interface that all logging receiver type
> classes must implement.  Provides to methods to start and stop a receiver,
> etc.
> - ReceiverFactory is a new interface that all receiver factories must
> implement.  ReceiverFactory will be used to create instances of a specific
> logging receiver class.  There are methods that provide for programmatic
> creation via parameters and creation via gui configuration.
> 
> With the above interfaces, it is possible to create
> LoggingReceiver/ReceiverFactory classes for any type of logging source.  I
> created 2 types:
> 
> - SocketReceiver is basically what LoggingReceiver used to be.  It supports
> connections initiated by SocketAppenders.  There is some extra code to keep
> track of all the connections on a given port.
> - SocketReceiverFactory is used to create specific instance of
> SocketReceiver.  It contains a dialog that is used to collect the port
> number from the user which is then used to create an instance.
> - SocketHubReceiver is a new logging receiver.  It supports connections to
> SocketHubAppenders.
> - SocketHubReceiverFactory is used to create specific instances of
> SocketHubReceiver.  It contains a dialog that is used to collect the host
> name and port number from the user which is then used to create an instance.
> - Main has been modified to add a new "Connect" menu.  It uses a new
> ConfigureReceiverAction to use specific instances of ReceiverFactory objects
> to let the user configure and create new logging receiver.  The new
> receivers are attached to the main window and table model and start
> executing.
> 
> Even if folks like these changes, they still need more refinement and clean
> up.  I am willing to take this on as I want to see this enhancement in
> Chainsaw (and LF5 for that matter).
> 
> I would like feedback from folks about the new
> LoggingReceiver/ReceiverFactory interfaces/classes.  I would really like it
> if someone created LoggingReceiver/ReceiverFactory classes for JMSAppender
> or the udp multicast appender we talked about a long time ago.  That would
> be a test of the design and would create some generally useful code.
> 
> Please let me know your feedback.
> 
> -Mark
> 
>  <<chainsaw_mods_v2.zip>> 
> 

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>