001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2008 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common Development
008: * and Distribution License("CDDL") (collectively, the "License"). You
009: * may not use this file except in compliance with the License. You can obtain
010: * a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
011: * or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
012: * language governing permissions and limitations under the License.
013: *
014: * When distributing the software, include this License Header Notice in each
015: * file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
016: * Sun designates this particular file as subject to the "Classpath" exception
017: * as provided by Sun in the GPL Version 2 section of the License file that
018: * accompanied this code. If applicable, add the following below the License
019: * Header, with the fields enclosed by brackets [] replaced by your own
020: * identifying information: "Portions Copyrighted [year]
021: * [name of copyright owner]"
022: *
023: * Contributor(s):
024: *
025: * If you wish your version of this file to be governed by only the CDDL or
026: * only the GPL Version 2, indicate your decision by adding "[Contributor]
027: * elects to include this software in this distribution under the [CDDL or GPL
028: * Version 2] license." If you don't indicate a single choice of license, a
029: * recipient has the option to distribute your version of this file under
030: * either the CDDL, the GPL Version 2 or to extend the choice of license to
031: * its licensees as provided above. However, if you add GPL Version 2 code
032: * and therefore, elected the GPL Version 2 license, then the option applies
033: * only if the new code is made subject to such option by the copyright
034: * holder.
035: */
036: /*
037: * JBILogger.java
038: *
039: */
040: package com.sun.jbi.jsf.util;
041:
042: import java.util.logging.Level;
043: import java.util.logging.Logger;
044:
045: /**
046: * Provides logging facilities for JBI admin-gui web console classes
047: *
048: * @author Sun Microsystems Inc.
049: */
050: public final class JBILogger {
051:
052: /**
053: * returns the instance of the logger
054: *
055: * @return The Instance value
056: */
057: public static synchronized Logger getInstance() {
058: if (sLogger == null) {
059: sLogger = Logger.getLogger(PACKAGE_NAME);
060: }
061: return sLogger;
062: }
063:
064: /**
065: * Gets the LoggableFine attribute of the JBILogger class
066: *
067: * @return The LoggableFine value
068: */
069: public static boolean isLoggableFine() {
070: boolean result = false;
071: if (null != sLogger) {
072: result = sLogger.isLoggable(Level.FINE);
073: }
074: return result;
075: }
076:
077: /**
078: * Gets the LoggableFiner attribute of the JBILogger class
079: *
080: * @return The LoggableFiner value
081: */
082: public static boolean isLoggableFiner() {
083: boolean result = false;
084: if (null != sLogger) {
085: result = sLogger.isLoggable(Level.FINER);
086: }
087: return result;
088: }
089:
090: /**
091: * Description of the Method
092: *
093: * @param aClassName Description of Parameter
094: * @param aMethodName Description of Parameter
095: */
096: public static void entering(String aClassName, String aMethodName) {
097: if (isLoggableFiner()) {
098: sLogger.entering(aClassName, aMethodName);
099: }
100: }
101:
102: /**
103: * Description of the Method
104: *
105: * @param aClassName Description of Parameter
106: * @param aMethodName Description of Parameter
107: * @param anArgsArray Description of Parameter
108: */
109: public static void entering(String aClassName, String aMethodName,
110: Object[] anArgsArray) {
111: if (isLoggableFiner()) {
112: sLogger.entering(aClassName, aMethodName, anArgsArray);
113: }
114: }
115:
116: /**
117: * Description of the Method
118: *
119: * @param aClassName Description of Parameter
120: * @param aMethodName Description of Parameter
121: */
122: public static void exiting(String aClassName, String aMethodName) {
123: if (sLogger.isLoggable(Level.FINER)) {
124: sLogger.exiting(aClassName, aMethodName);
125: }
126: }
127:
128: /**
129: * Description of the Method
130: *
131: * @param aClassName Description of Parameter
132: * @param aMethodName Description of Parameter
133: * @param aResult Description of Parameter
134: */
135: public static void exiting(String aClassName, String aMethodName,
136: Object aResult) {
137: // TBD normalize result:
138: // e.g. if aResult not null and instanceof List
139: // -> String descr = "~List.size() = n"
140: if (isLoggableFiner()) {
141: sLogger.exiting(aClassName, aMethodName, aResult);
142: }
143: }
144:
145: /**
146: * Description of the Method
147: *
148: * @param aClassName Description of Parameter
149: * @param aMethodName Description of Parameter
150: * @param aNonI18nMessage Description of Parameter
151: */
152: public static void logFine(String aClassName, String aMethodName,
153: String aNonI18nMessage) {
154: if (isLoggableFine()) {
155: sLogger.logp(Level.FINE, aClassName, aMethodName,
156: buildMessage(aClassName, aMethodName,
157: aNonI18nMessage));
158: }
159: }
160:
161: /**
162: * Description of the Method
163: *
164: * @param aClassName Description of Parameter
165: * @param aMethodName Description of Parameter
166: * @param aNonI18nMessage Description of Parameter
167: */
168: public static void logFiner(String aClassName, String aMethodName,
169: String aNonI18nMessage) {
170: if (isLoggableFiner()) {
171: sLogger.logp(Level.FINER, aClassName, aMethodName,
172: buildMessage(aClassName, aMethodName,
173: aNonI18nMessage));
174: }
175: }
176:
177: /**
178: * Description of the Method
179: *
180: * @param aClassName Description of Parameter
181: * @param aMethodName Description of Parameter
182: * @param aMessageKey Description of Parameter
183: */
184: public static void logpFine(String aClassName, String aMethodName,
185: String aMessageKey) {
186: if (isLoggableFine()) {
187: sLogger.logrb(Level.FINE, aClassName, aMethodName,
188: JBI_JSF_BUNDLE_NAME, aMessageKey);
189: }
190: }
191:
192: /**
193: * Description of the Method
194: *
195: * @param aClassName Description of Parameter
196: * @param aMethodName Description of Parameter
197: * @param aMessageKey Description of Parameter
198: * @param anInsertsArray Description of Parameter
199: */
200: public static void logpFine(String aClassName, String aMethodName,
201: String aMessageKey, Object[] anInsertsArray) {
202: if (isLoggableFine()) {
203: sLogger.logrb(Level.FINE, aClassName, aMethodName,
204: JBI_JSF_BUNDLE_NAME, aMessageKey, anInsertsArray);
205: }
206: }
207:
208: /**
209: * Description of the Method
210: *
211: * @param aClassName Description of Parameter
212: * @param aMethodName Description of Parameter
213: * @param aMessageKey Description of Parameter
214: */
215: public static void logpFiner(String aClassName, String aMethodName,
216: String aMessageKey) {
217: if (isLoggableFiner()) {
218: sLogger.logrb(Level.FINER, aClassName, aMethodName,
219: JBI_JSF_BUNDLE_NAME, aMessageKey);
220: }
221: }
222:
223: /**
224: * Description of the Method
225: *
226: * @param aClassName Description of Parameter
227: * @param aMethodName Description of Parameter
228: * @param aMessageKey Description of Parameter
229: * @param anInsertsArray Description of Parameter
230: */
231: public static void logpFiner(String aClassName, String aMethodName,
232: String aMessageKey, Object[] anInsertsArray) {
233: if (isLoggableFiner()) {
234: sLogger.logrb(Level.FINER, aClassName, aMethodName,
235: JBI_JSF_BUNDLE_NAME, aMessageKey, anInsertsArray);
236: }
237: }
238:
239: /**
240: * Description of the Method
241: *
242: * @param aClassName Description of Parameter
243: * @param aMethodName Description of Parameter
244: * @param aMessage Description of Parameter
245: * @return Description of the Returned Value
246: */
247: private static final String buildMessage(String aClassName,
248: String aMethodName, String aMessage) {
249: StringBuffer logMessage = new StringBuffer(aClassName);
250: logMessage.append(".");
251: logMessage.append(aMethodName);
252: logMessage.append("() ");
253: logMessage.append(aMessage);
254: return logMessage.toString();
255: }
256:
257: private static Logger sLogger;
258: private static final String PACKAGE_NAME = "com.sun.jbi.jsf";
259:
260: private static final String JBI_JSF_BUNDLE_NAME = "com.sun.jbi.jsf.resources.Bundle.properties";
261:
262: /**
263: * prevents instantiation
264: */
265: private JBILogger() {
266: }
267: }
|