1 /* Open Source Java Caching Service 2 * Copyright (C) 2002 Frank Karlstrøm 3 * This library is free software; you can redistribute it and/or 4 * modify it under the terms of the GNU Lesser General Public 5 * License as published by the Free Software Foundation; either 6 * version 2.1 of the License, or (at your option) any later version. 7 * 8 * This library is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * Lesser General Public License for more details. 12 * 13 * You should have received a copy of the GNU Lesser General Public 14 * License along with this library; if not, write to the Free Software 15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 * 17 * The author can be contacted by email: fjankk@users.sourceforge.net 18 */ 19 package javax.util.jcache; 20 21 /** 22 * Applications can either extend this class to implement a customized logging 23 * mechanism. The caching service uses this API to log cache related events. 24 * Users can use the Cache.setLogSeverity(int) to change the desirable cache 25 * logging severity. The severity levels are defined as: OFF FATAL ERROR 26 * DEFAULT WARNING TRACE INFO DEBUG A default cache logger is implemented. If 27 * no cache logger is provided, the default cache logger will be used. By 28 * default, DefaultCacheLogger will log all the messages to a file called 29 * "jcache.log" in the directory where the server process is started. Users 30 * can set a differen log file name for the default logger when initializing 31 * the cache by calling CacheAttributes.setLogFileName(String). 32 * @todo all methods in this class should be implemented. 33 * @deprecated will be removed and replaced with jdk1.4 logging or log4j. 34 * @author Frank Karlstrøm 35 */ 36 public abstract class CacheLogger { 37 38 /** an int describing that the logging is off. */ 39 public static final int OFF = 0; 40 41 /** an int describing that only fatal errors should be logged. */ 42 public static final int FATAL = 1; 43 44 /** an int describing that only errors or higher should be logged. */ 45 public static final int ERROR = 2; 46 47 /** an int describing that only warnings or higher should be logged. */ 48 public static final int WARNING = 3; 49 50 /** 51 * an int describing that informational messages and higher should be 52 * logged. 53 */ 54 public static final int INFO = 4; 55 56 /** 57 * an int describing that default logging severity is applied. (info is 58 * default) 59 */ 60 public static final int DEFAULT = 5; 61 62 /** an int describing that debugmessages and higher should be logged. */ 63 public static final int DEBUG = 6; 64 65 /** an int describing that tracing messages and higher should be logged. */ 66 public static final int TRACE = 7; 67 68 /** 69 * Creates new CacheLogger. 70 */ 71 protected CacheLogger() { 72 } 73 74 /** 75 * application writers can implement this method and provide their own 76 * mechanism to log a message. 77 * 78 * @param message the message to log. 79 */ 80 public abstract void log(final String message); 81 82 /** 83 * application writers can implement this method and provide their own 84 * mechanism to log a message. 85 * 86 * @param message The message to log. 87 * @param cause The Exception responsible for causing an log event to 88 * happen. 89 */ 90 public abstract void log(final String message, final Throwable cause); 91 92 /** 93 * is called by the caching system when the CacheLogger is instanciated to 94 * complete any initialization requirements. 95 * 96 * @param fileName the value from the CacheAttribute 97 * @param severity the value from the CacheAttributes. 98 * @todo Not supported. 99 */ 100 public abstract void init(final String fileName, final int severity); 101 102 /** 103 * log messages are buffered by the cache. This method will force the 104 * messages to be written out the destination and the buffer is reset. 105 * @todo Not supported. 106 */ 107 public abstract void flush(); 108 109 /** 110 * returns the current severity level defined in this class. The severity 111 * level determines the amount of information that will be logged. The 112 * default setting is DEFAULT. 113 * 114 * @return the current severity level defined in this class. 115 * @todo Not supported. 116 */ 117 public static int getSeverity() { 118 return OFF; 119 } 120 121 /** 122 * sets the severity level to the specified level. The severity level 123 * determines the amount of information that will be logged. The default 124 * setting is DEFAULT. 125 * 126 * @param severity the severity level to set. 127 * @todo Not supported. 128 */ 129 public final void setSeverity(final int severity) { 130 } 131 }