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>>
chainsaw_mods_v2.zip
Description: Binary data
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
