Cache Event Logging
JCS allows you to implement custom event loggers. Most of the
auxiliaries will log ICacheEvents (eg. update, get, getMultiple, remove,
removeAll, and dispose) to an injected event logger. By default the
log calls balk. But if you inject a logger, you can add monitoring
to any auxiliary. Most auxiliaries also log key application events
and critical errors to the same logger.
To inject a custom event logger, you simply need to implement the
org.apache.commons.jcs3.engine.logging.behavior.ICacheEventLogger
interface and add a couple of lines to the cache.ccf file.
During configuration, JCS will look for event loggers configured
for each auxiliary. JCS will set any custom properties. For
instance, to add debug event logging to a remote cache client, you
could do the following:
. . .
jcs.auxiliary.RC=org.apache.commons.jcs3.auxiliary.remote.RemoteCacheFactory
jcs.auxiliary.RC.attributes=org.apache.commons.jcs3.auxiliary.remote.RemoteCacheAttributes
jcs.auxiliary.RC.attributes.FailoverServers=localhost:1101,localhost:1102
jcs.auxiliary.RC.attributes.LocalPort=1201
jcs.auxiliary.RC.attributes.RemoveUponRemotePut=false
# jcs.auxiliary.RC.attributes.RemoteServiceName=RemoteCache
# -1 means no timeout, this is the default
# if the timeout is -1, no threadpool will be used.
jcs.auxiliary.RC.attributes.GetTimeoutMillis=500
jcs.auxiliary.RC.attributes.ThreadPoolName=remote_cache_client
jcs.auxiliary.RC.attributes.GetOnly=false
jcs.auxiliary.RC.cacheeventlogger=org.apache.commons.jcs3.engine.logging.CacheEventLoggerDebugLogger
jcs.auxiliary.RC.cacheeventlogger.attributes.logCategoryName=test.RCCEventLogCategory
. . .
The attribute "logCateoryName" is a property of this
implementation. You can configure any properties on your
implementation in the same way.
|