1 package org.apache.jcs.engine.logging.behavior;
2
3 import java.io.Serializable;
4
5 /**
6 * This defines the behavior for event logging. Auxiliaries will send events to injected event
7 * loggers.
8 * <p>
9 * In general all ICache interface methods should call the logger if one is configured. This will be
10 * done on an ad hoc basis for now. Various auxiliaries may have additional events.
11 */
12 public interface ICacheEventLogger
13 {
14 /** ICache update */
15 static final String UPDATE_EVENT = "update";
16
17 /** ICache get */
18 static final String GET_EVENT = "get";
19
20 /** ICache getMultiple */
21 static final String GETMULTIPLE_EVENT = "getMultiple";
22
23 /** ICache getMatching */
24 static final String GETMATCHING_EVENT = "getMatching";
25
26 /** ICache remove */
27 static final String REMOVE_EVENT = "remove";
28
29 /** ICache removeAll */
30 static final String REMOVEALL_EVENT = "removeAll";
31
32 /** ICache dispose */
33 static final String DISPOSE_EVENT = "dispose";
34
35 /** ICache enqueue. The time in the queue. */
36 //static final String ENQUEUE_EVENT = "enqueue";
37 /**
38 * Creates an event.
39 * <p>
40 * @param source - e.g. RemoteCacheServer
41 * @param region - the name of the region
42 * @param eventName - e.g. update, get, put, remove
43 * @param optionalDetails - any extra message
44 * @param key - the cache key
45 * @return ICacheEvent
46 */
47 <T extends Serializable> ICacheEvent<T> createICacheEvent( String source, String region,
48 String eventName, String optionalDetails, T key );
49
50 /**
51 * Logs an event.
52 * <p>
53 * @param event - the event created in createICacheEvent
54 */
55 <T extends Serializable> void logICacheEvent( ICacheEvent<T> event );
56
57 /**
58 * Logs an event. These are internal application events that do not correspond to ICache calls.
59 * <p>
60 * @param source - e.g. RemoteCacheServer
61 * @param eventName - e.g. update, get, put, remove
62 * @param optionalDetails - any extra message
63 */
64 void logApplicationEvent( String source, String eventName, String optionalDetails );
65
66 /**
67 * Logs an error.
68 * <p>
69 * @param source - e.g. RemoteCacheServer
70 * @param eventName - e.g. update, get, put, remove
71 * @param errorMessage - any error message
72 */
73 void logError( String source, String eventName, String errorMessage );
74 }