001: /*
002: * Copyright (c) 2004 JETA Software, Inc. All rights reserved.
003: *
004: * Redistribution and use in source and binary forms, with or without modification,
005: * are permitted provided that the following conditions are met:
006: *
007: * o Redistributions of source code must retain the above copyright notice,
008: * this list of conditions and the following disclaimer.
009: *
010: * o Redistributions in binary form must reproduce the above copyright notice,
011: * this list of conditions and the following disclaimer in the documentation
012: * and/or other materials provided with the distribution.
013: *
014: * o Neither the name of JETA Software nor the names of its contributors may
015: * be used to endorse or promote products derived from this software without
016: * specific prior written permission.
017: *
018: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
019: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
020: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
021: * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
022: * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
023: * INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
024: * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
025: * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
026: * INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
027: * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
028: */
029:
030: package com.jeta.forms.logger;
031:
032: import java.io.PrintWriter;
033: import java.io.StringWriter;
034: import java.util.logging.Logger;
035:
036: import com.jeta.forms.gui.common.FormException;
037:
038: /**
039: * This class is a helper class for logging messages in the application. This
040: * class also initializes the logging API for the application
041: *
042: * @author Jeff Tassin
043: */
044: public class FormsLogger {
045: /**
046: * The name of our logger.
047: */
048: public static final String LOGGER_NAME = "forms.logger";
049:
050: /**
051: * Converts the stack trace for the given Throwable into a String
052: *
053: * @param t
054: * the throwable whose stack trace we wish to retrive.
055: * @return a String representation of the stack trace for the given
056: * Throwable
057: */
058: private static String getStackTrace(Throwable t) {
059: StringWriter writer = new StringWriter();
060: t.printStackTrace(new PrintWriter(writer));
061: return writer.toString();
062: }
063:
064: /**
065: * Helper method that sends a message to the logger only when debugging
066: *
067: * @param msg
068: * the message to send to the logger
069: */
070: public static void debug(String msg) {
071: Logger logger = Logger.getLogger(LOGGER_NAME);
072: logger.finest(msg);
073: }
074:
075: /**
076: * Helper method that logs an exception.
077: *
078: * @param t
079: * the Throwable whose message and stack trace we send to the
080: * logger.
081: */
082: public static void debug(Throwable t) {
083: Logger logger = Logger.getLogger(LOGGER_NAME);
084: if (t instanceof FormException) {
085: Exception e = ((FormException) t).getSourceException();
086: if (e != null)
087: t = e;
088: }
089:
090: String msg = getStackTrace(t);
091: logger.finest(msg);
092: }
093:
094: /**
095: * Helper method that sends a message to the logger.
096: *
097: * @param msg
098: * the message that is sent to the logger.
099: */
100: public static void fine(String msg) {
101: Logger logger = Logger.getLogger(LOGGER_NAME);
102: logger.fine(msg);
103: }
104:
105: /**
106: * Forwards a severe log message to the application logger
107: *
108: * @param msg
109: * the message to send to the logger.
110: */
111: public static void severe(String msg) {
112: Logger logger = Logger.getLogger(LOGGER_NAME);
113: logger.fine(msg);
114: }
115:
116: /**
117: * Forwards a severe log message to the application logger.
118: *
119: * @param t
120: * the Throwable whose message and stack trace is sent to the
121: * logger.
122: */
123: public static void severe(Throwable t) {
124: Logger logger = Logger.getLogger(LOGGER_NAME);
125: if (t instanceof FormException) {
126: Exception e = ((FormException) t).getSourceException();
127: if (e != null)
128: t = e;
129: }
130: String msg = getStackTrace(t);
131: logger.severe(msg);
132: }
133: }
|