<?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.jcs.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.jcs.auxiliary.remote.RemoteCacheFactory | |
jcs.auxiliary.RC.attributes=org.apache.jcs.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.jcs.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> |