Class SocketServer
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.
- Since:
- 1.0
- Author:
- Ceki Gülcü
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
SocketServer
-
-
Method Details
-
main
-