| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> |
| <HTML> |
| <HEAD> |
| <link rel="stylesheet" href="stylesheet.css" type="text/css"> |
| </HEAD> |
| |
| <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#800000" ALINK="#FF00FF" BACKGROUND="?"> |
| <h2>ZeroConf (Zero Configuration)</h2> |
| <p>One of the hardest parts of any network-based application is configuring which bits connect to what, and how |
| do they connect to each other. Each device that can be connected <emphasis>to</emphasis> already knows |
| the configuration details required to connect to it, but every other device that may wish to connect to it |
| will need to be provided with this information so the connection can be established. |
| </p> |
| <p> |
| ZeroConf aims to eliminate the time-consuming aspect of connecting devices together. The device broadcasts the |
| configuration details reqired to connect or work with the service over a multicast protocol. You probably already have |
| devices on your local network such as printers that are automatically discovered by your computer. |
| </p> |
| <p> |
| Zeroconf is an open-standard that many vendors are using to reduce cost of configuration. The <b>JmDNS</b> project |
| is an Apache 2.0 licensed library that implements the ZeroConf protocol. Chainsaw and log4j use |
| JmDNS to broadcast Appender information so that a matching Receiver can be easily created to connect to each other |
| to stream logging messages into Chainsaw. |
| </p> |
| <p> |
| <ul> |
| <li><a href="http://www.zeroconf.org" target="_new">http://www.zeroconf.org</a></li> |
| <li><a href="http://jmdns.sf.net" target="_new">http://jmdns.sf.net</a></li> |
| </ul> |
| </p> |
| <h2>Interesting... So what do I need to use ZeroConf with Chainsaw & log4j?</h2> |
| <p> |
| The log4j team has created an additional JAR file that can be added to your existing |
| application to enable ZeroConf configuration. You just need to download the <code>log4j-zeroconf.jar</code> and the JmDNS package. Then change your references from <code>SocketHubAppender</code> |
| to <code>ZeroConfSocketHubAppender</code>. (We recommend you change the 'name' propety from it's default to make it easy for you to use, other |
| wise it's name will appear as the default 'SocketHubAppender'). |
| </p> |
| <h2>Cool... But I have some applications that use log4j 1.2.x. Will it still work?</h2> |
| <p>Yes. We have designed a backward compatible mechanism to expose log4j 1.2.x SocketHubAppender so that Chainsaw can detect it automatically. |
| </p> |
| |
| <h2>But... Surely there's a catch?</h2> |
| <p>A small catch. Because it's based on a multicast protocol, routers tend to block these packets, and so it's likely that your production computers, |
| which are usually in a heavily protected network won't be able to broadcast their configuration information. If you have a VPN |
| into this sort of network it is possible that these multicast packets can traverse the network.</p> |
| |
| <h2>Oh... So is this even useful?</h2> |
| <p>It's extremely useful for development, QA and staging environments. Usually the QA/Staging environment is isolated from your development |
| team, but having them monitor logs from these machines would be handy. Or your QA team may want to copy/paste some ERROR messages from |
| QA/staging to notify the dev team. ZeroConf gives your whole software development team an easy way to get access to your logging events.</p> |
| </BODY> |
| </HTML> |