Apache Commons logo

Commons JCS™

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.