public class SocketServer extends Object
SocketNode
based server that uses a different hierarchy
for each client.
Usage: java org.apache.log4j.net.SocketServer port configFile configDir
where port is a part number where the server listens,
configFile is a configuration file fed to the PropertyConfigurator
and
configDir is a path to a directory containing configuration files, possibly one for each client host.
The configFile
is used to configure the log4j
default hierarchy that the SocketServer
will use to
report on its actions.
When a new connection is opened from a previously unknown
host, say foo.bar.net
, then the
SocketServer
will search for a configuration file
called foo.bar.net.lcf
under the directory
configDir
that was passed as the third argument. If
the file can be found, then a new hierarchy is instantiated and
configured using the configuration file
foo.bar.net.lcf
. If and when the host
foo.bar.net
opens another connection to the server,
then the previously configured hierarchy is used.
In case there is no file called foo.bar.net.lcf
under the directory configDir
, then the
generic hierarchy is used. The generic hierarchy is
configured using a configuration file called
generic.lcf
under the configDir
directory. If no such file exists, then the generic hierarchy will be
identical to the log4j default hierarchy.
Having different client hosts log using different hierarchies ensures the total independence of the clients with respect to their logging settings.
Currently, the hierarchy that will be used for a given request
depends on the IP address of the client host. For example, two
separate applicatons running on the same host and logging to the
same server will share the same hierarchy. This is perfectly safe
except that it might not provide the right amount of independence
between applications. The SocketServer
is intended
as an example to be enhanced in order to implement more elaborate
policies.
Modifier and Type | Field and Description |
---|---|
(package private) static Logger |
cat |
(package private) static String |
CONFIG_FILE_EXT |
(package private) File |
dir |
(package private) static String |
GENERIC |
(package private) LoggerRepository |
genericHierarchy |
(package private) Hashtable |
hierarchyMap |
(package private) static int |
port |
(package private) static SocketServer |
server |
Constructor and Description |
---|
SocketServer(File directory) |
Modifier and Type | Method and Description |
---|---|
(package private) LoggerRepository |
configureHierarchy(InetAddress inetAddress) |
(package private) LoggerRepository |
genericHierarchy() |
(package private) static void |
init(String portStr,
String configFile,
String dirStr) |
static void |
main(String[] argv) |
(package private) static void |
usage(String msg) |
static String CONFIG_FILE_EXT
static SocketServer server
static int port
Hashtable hierarchyMap
LoggerRepository genericHierarchy
public SocketServer(File directory)
LoggerRepository configureHierarchy(InetAddress inetAddress)
LoggerRepository genericHierarchy()
WebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses