xdocs/CacheEventLogging.xml (25 lines of code) (raw):

<?xml version="1.0"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <document> <properties> <title>Cache Event Logging</title> <author email="ASmuts@apache.com">Aaron Smuts</author> </properties> <body> <section name="Cache Event Logging"> <p> 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.</p> <p> To inject a custom event logger, you simply need to implement the <code>org.apache.commons.jcs3.engine.logging.behavior.ICacheEventLogger </code> interface and add a couple of lines to the cache.ccf file. </p> <p> 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:</p> <source><![CDATA[ . . . 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 . . . ]]></source> <p> The attribute "logCateoryName" is a property of this implementation. You can configure any properties on your implementation in the same way.</p> </section> </body> </document>