blob: 39aed8fc5ce2265b43a46118ceca241694b25439 [file] [log] [blame]
<?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>