You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Leif Mortenson <le...@tanukisoftware.com> on 2002/08/07 06:56:06 UTC
[Commit] Reworked the logging in Fortress
I just committed a buch of changes which make it possible to configure
the log output of Fortress
to a much greater degree. This was done by assigning unique categories
to the various objects
which make up the Fortress system.
Here is a table of the new logger categories as seen from the swing
example. (Note that these are all
prefixed by the "fortress" category because that prefix is set for the
defaultContext LOG_CATEGORY
in ContextBuilder)
fortress Root category
defined by the LOG_CATEGORY
fortress.translator Log output from the
translator service. Specified in the xconf conf file for the service.
fortress.system Root category for all
internal system categories
fortress.system.logkit Log output from the
LogKitLoggerManager
fortress.system.roles Log output from the
RoleManager
fortress.system.roles.defaults Log output from the
ExcaliburRoleManager.
fortress.system.threadmgr Log output from the ThreadManager
fortress.system.factory Log output from the
ComponentFactory (Already existed)
fortress.system.handler Root category for all
handler categories. (Already existed)
fortress.system.handler.factory Log output from the
FactoryComponentHandler (Already existed)
fortress.system.handler.perthread Log output from the
PerThreadComponentHandler (Already existed)
fortress.system.handler.poolable Log output from the
PoolableComponentHandler (Already existed)
fortress.system.handler.threadsafe Log output from the
ThreadSafeComponentHandler (Already existed)
fortress.system.instrument Log output from the
InstrumentManager (if present)
fortress.system.instrument.connector Log output from the connectors of
the InstrumentManager (Defined by InstrumentManager)
fortress.system.instrument.values Log detailed output of values
passed to the InstrumentManager (Defined by InstrumentManager)
At first glance, this may seem like a lot of categories. But it has the
benefit of making it very easy to
see the exact information that the user is interrested in.
For example. Most users will set the following categories in their xlog
conf file. This will only output
information from the root category and the categories of their services.
All system debug output is
disabled.
<categories>
<!-- Log output from the default logger -->
<category name="" log-level="DEBUG">
<log-target id-ref="console"/>
</category>
<!-- Log output from the fortress system -->
<category name="system" log-level="INFO">
<log-target id-ref="console"/>
</category>
</categories>
By creating subcatories under the system configuration, specific log
output can be selected and displayed:
<categories>
<!-- Log output from the default logger -->
<category name="" log-level="DEBUG">
<log-target id-ref="console"/>
</category>
<!-- Log output from the fortress system -->
<category name="system" log-level="INFO">
<log-target id-ref="console"/>
<!-- Log output from the component factory -->
<category name="factory" log-level="DEBUG">
<log-target id-ref="console"/>
</category>
</category>
</categories>
The log output from the actual LogKitLoggerManager is handled slightly
differently. Its log priority is
set via an attribute in the top level of the xlog conf file:
<logkit log-level="INFO">
...
</logkit>
This value defaults to "DEBUG". The format can not be controlled until
the xlog conf file has been
loaded. But the format will be set to what is specified in the conf
file as it is loaded.
In addition, you have the ability to configure the names of certain
loggers from their respecive conf files
using a "logger" attribute much like was done with the "log-level"
attribute above. Below are all the
places were logger categories can be specified along with their default
values.
{containerclass}.xlog
<logkit logger="system.logkit">
...
</logkit>
{containerclass}.roles
<fortress-roles logger="system.roles">
...
</fortress-roles>
{containerclass}.instrument
<instrument logger="system.instrument">
...
</instrument>
I have not yet played around with nesting contexts, so hopefully this
all fits together nicely.
Cheers,
Leif
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>