The Faban harness makes use of the Java SE logging subsystem. It
provides a log server that receives and consolidates log messages from
all systems in the rig. While Faban drivers and harness components will
be automatically configured to send log messages back to the log
server, other infrastructure such as database servers and application
servers will need to be configured manually to do so.
The log configuration is one of the few things that cannot yet be
done through the GUI. Moreover, logging is configured on a per-system
basis. This allows the flexibility of having only one of the systems
send out detailed log messages. But it also means you have to logon to
individual systems in the rig to configure logging.
The Faban log configuration file is located at
FABAN_HOME/config/logging.properties on each of the systems partaking
in the benchmark run. It is a java properties file that can be edited
using any text editor. Following is how the configuration entries look
like by default:
#Faban logging properties
#Tue May 09 14:28:22 PDT 2006
java.util.logging.SocketHandler.formatter=com.sun.faban.harness.agent.RemoteLogFormatter
handlers=java.util.logging.SocketHandler, java.util.logging.FileHandler
java.util.logging.SocketHandler.host=brazilian.sfbay
com.sun.level=INFO
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.FileHandler.pattern=/tmp/fabanagent%u.log
java.util.logging.SocketHandler.port=9999
The Faban harness automatically edits certain entries of this file
to ensure that the logs are indeed transmitted to the log server for
consolidation. These entries should not be modified by hand. They are:
Also, java.util.logging.SocketHandler
must always stay in the list of handlers in the handlers entry.
The main addition/modification one will want to make to the log file
is to change the log level for certain loggers.. The entry com.sun.level=INFO can be
edited to be any of the levels supported by the Java SE logging
infrastructure. In addition, you may want to set a log level for a
certain package/logger, for example - adding com.mycompany.mybenchmark.level=FINE.
Just note that the precedence order for the log level is important.
Subsequent log level settings override previously defined ones. So if
you have multiple log level entries with overlapping scope, you'll need
to be very careful about the order they are put into the configuration
file.
Other additions you may want to make is to add another log handler
or log target. This is less common in a benchmarking environment but
may be useful in certain situations.
For details on the Java SE logging infrastructure and the logging
configuration file, please refer to the Java
logging documentation.
The log configuration file is read and re-read every time a new run
is started. You can edit a configuration file while a run is going on.
However, the change will not take effect until the file is re-read,
which is usually at the beginning of every run.